導航:首頁 > 源碼編譯 > 用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編譯宏相關的資料

熱點內容
單片機的Vpp是 瀏覽:350
iua編譯器下載官方 瀏覽:84
壓縮機高低壓快速平衡 瀏覽:873
phpai 瀏覽:707
怎麼不被命令 瀏覽:86
大話緣定三生伺服器什麼便宜 瀏覽:967
idea編譯內部類 瀏覽:466
pdf2word在線轉換 瀏覽:588
tim儲存在哪個文件夾 瀏覽:621
華碩電腦u盤加密最簡單方法 瀏覽:853
編程過路馬游戲 瀏覽:608
python多重線性回歸 瀏覽:516
冰箱壓縮機工作圖 瀏覽:843
OTC機器人編程師 瀏覽:948
簽名的apk能防止反編譯嗎 瀏覽:311
我的世界伺服器如何版本 瀏覽:285
集合競價買入額指標源碼 瀏覽:114
雲伺服器安裝華為歐拉系統 瀏覽:959
c面向對象編程教程 瀏覽:527
php的重定向跳轉頁面跳轉 瀏覽:411