導航:首頁 > 源碼編譯 > 用c編譯宏

用c編譯宏

發布時間:2022-03-08 13:07:22

『壹』 C語言宏定義 用條件編譯

條件編譯以及所有前面帶「#」的語句,是在編譯階段執行的語句,不會生成運行時的代碼。而你的y是在運行時才進行賦值的,所以是無法用條件編譯來實現的。
直接寫成條件語句就行:
{
if R
printf("%d是閏年\n",y);
else
printf("%d不是閏年\n",y);
}

『貳』 c語言中怎麼用命令提示窗口編譯宏定義並列印出來!請指教.謝謝了.

安裝 Visual Studio 後在開始菜單里找 Microsoft Visual C++ 命令提示符,打開後,用微軟的編譯器 cl 編譯,不是 cpp。

『叄』 如何在C語言中用宏來判斷當前編譯器

1、_MSC_VER 是微軟C/C++編譯器——cl.exe 編譯代碼時預定義的一個宏。需
要針對cl 編寫代碼時, 可以使用該宏進行條件編譯。
2、_MSC_VER 的值表示cl 的版本。需要針對cl 特定版本編寫代碼時, 也可以使用
該宏進行條件編譯。
3、_MSC_VER 的類型是"int",具體版本號定義如下:
MS VC++ 9.0 _MSC_VER = 1500
MS VC++ 8.0 _MSC_VER = 1400
MS VC++ 7.1 _MSC_VER = 1310
MS VC++ 7.0 _MSC_VER = 1300
MS VC++ 6.0 _MSC_VER = 1200
MS VC++ 5.0 _MSC_VER = 1100
其中MS VC++ 9.0 就是Visual C++ 2008,MS VC++ 8.0 就是Visual C++2005。
二、介紹預定義宏「__GNUC__」
1、__GNUC__ 是gcc 編譯器編譯代碼時預定義的一個宏。需要針對gcc 編寫代碼時,
可以使用該宏進行條件編譯。
2、__GNUC__ 的值表示gcc 的版本。需要針對gcc 特定版本編寫代碼時,也可以使
用該宏進行條件編譯。
3、__GNUC__ 的類型是「int」
三、預定義宏"__MINGW32__"
1、MinGW編譯器
四、symbian sdk 預定義宏:
symbian 平台,定義"__SYMBIAN32_"
3rd MR 版及之前的那個3rd 版本,定義"__SERIES60_30__"
3rd FP1 版,定義"__SERIES60_31__"
3rd FP2 版,定義"__SERIES60_32__"
另外,還有一個"__SERIES60_3x__"。若不需區分具體是哪一個3rd 版,則用之。

『肆』 C語言 宏

難道3不能是字元串嗎?

"3*pi"是字元串,"3"是它的子串。
"3*pi"宏展開後為"3*3.1415926"也是字元串,整個源程序都被認為字元串!

現在,還有有編譯,編譯時,編譯器會把3*3.1415926當表達式計算,用結果再替換一次!

『伍』 C語言宏定義編譯報錯

你把struct student用括弧括起來試試,即:
#define STU (struct student)

『陸』 C語言##宏的使用問題

#define PORT P1
#define zhantie(x,y) x##y
#define zaizhan(x,y) zhantie(x,y)
#define POUT zaizhan(PORT,OUT)

『柒』 c語言宏的使用問題

這個宏定義一個函數 S(r) ,其中 :
函數名:S
參數:r
函數內容: r*r

使用 S(a+b) , 就是把函數 S(r) 的函數內容中的參數 r, 用 a+b 替換,得到:a+b*a+b 。
因此, area=S(a+b) = a+b*a+b 。

其實這個例子是用來說明宏定義容易【出錯的】!函數 S 的本來目的是用來求平方的,
現在達不到預期的目的。正確的宏定義是:
#define S(r) (r)*(r)

『捌』 用c語言定義一個宏

這個要用到 三木運算,這樣代碼簡潔
#define INPUT_X_Y(x,y) ((x) * (y) < 100 )? (result = 1 ): (result = 0);
調用的時候輸入x 和 y 的值 ((x) * (y) < 100 )? (result = 1 ): (result = 0); 就是運算的式子 第一個表達式如果成立 執行?後面的 如果不成立 執行:後面的
最後如果有需要的話printf一下就行了

『玖』 C語言的編譯系統對宏命令的處理

前言:宏實質就是編譯器在對代碼進行編譯之前進行的一個「查找替換」工作,就跟你在處理文檔時用WPS/WORD/記事本等進行「查找替換」操作一樣。

C語言的編譯系統對宏命令的處理是()
A。在程序運行時進行的
B。在對源程序中其他成分正式編譯之前進行的
C。在程序連續時進行的
D。和C程序中的其他語句同時進行編譯

答:選B。在對源程序中其他成分正式編譯之前進行的

2,
#define N 2 /* 在預編譯時將用下面代碼中N替換成2 */
#define M N+1 /* 在預編譯時將M替換成N+1(即2+1,N會再被替換成2)*/
#define NUM 2*M+1 /* 如上:在預編譯時NUM替換成2*M+1,即2*N+1+1,即2*2+1+1*/
main()
{int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
/*
* 如上所述,上句展開為:for(i=1;i<=2*2+1+1;i++)printf("%d\n",i);
* 所以:循環將執行6次
*/
}

/* 切記注意:每一個宏百進行替換時只是替換「正文」中的內容,而不包括預編譯語句的內容, 否則就會像不少人理解的那樣,錯誤地認為第2個題中的循環將執行7次 */

『拾』 c語言宏定義如何用用宏定義有什麼優點

用#define 來定義,如#define Max 100
優點:在以後的程序中 要修改Max的大小 不用跑到程序中找 直接修改
#define Max 的大小即可。很方便。

閱讀全文

與用c編譯宏相關的資料

熱點內容
如何在app上架自己的游戲 瀏覽:457
安卓系統車載導航支持什麼格式u盤 瀏覽:624
天翼雲伺服器怎麼打開埠 瀏覽:907
如何啟用對伺服器遠程的訪問 瀏覽:774
程序員環境分析 瀏覽:812
tsp演算法是數據挖掘演算法嗎 瀏覽:672
編譯原理好處 瀏覽:820
怎麼買伺服器主機 瀏覽:176
什麼app可以存檔游戲 瀏覽:430
那裡有螺桿壓縮機修理 瀏覽:31
什麼電腦軟體檢測安卓機 瀏覽:728
c語言編譯沒問題組件有錯誤 瀏覽:513
迅捷pdf編輯器破解版下載 瀏覽:14
電火花線切割怎麼編程 瀏覽:777
linux查看驅動命令 瀏覽:998
蘇州車輛解壓代辦大概多少錢 瀏覽:593
租房app什麼比較靠譜 瀏覽:678
運動app如何測量運動心率 瀏覽:783
蘋果手機文件夾圖標背景圖透明度 瀏覽:735
遼寧省解壓旅遊 瀏覽:273