A. 問一下關於c語言的宏
簡單的宏定義有如下格式:
[#define指令(簡單的宏)]#define 標識符替換列表
替換列表是一系列的C語言記號,包括標識符、關鍵字、數、字元常量、字元串字面量、運算符和標點符號。當預處理器遇到一個宏定義時,會做一個 「標識符」代表「替換列表」的記錄。在文件後面的內容中,不管標識符在任何位置出現,預處理器都會用替換列表代替它。
B. 如何C語言宏定義二維數組並輸出
這里舉個小例子,我們在手機上使用易歷知食軟體內的微C程序設計來演示這個示例,示例中定義兩個宏,一個是定義二維數組(DEF_ARRAY),一個是輸出二維數組(OUTPUT_ARRAY),代碼如下圖所示:
C. c語言使用宏3個步驟是什麼
c語言使用宏3個步驟是:
1)寫出這個宏的定義,比如
#define ADD(a,b) ((a)+(b))
2)在代碼中應用這個宏,例如
xx=ADD(3+4,5)*ADD(0,7)
3)預編譯時系統自動展開宏,例如上述宏展開後的結果是
xx=((3+4)+(5))*((0)+(7))
D. c語言 宏定義 輸出格式 輸出項
字元『1』、字元『2』、字元『3』的asc碼值分別為49、50、51。
計算機運行
printf("%c,",b++);
語句時,
輸出格式為
%c
字元格式,
所以先輸出字元
b
也就是
2
,再將
b
增一
;
這時b=3
,asc碼值為51。
接著運行
printf("%d\n",b-a);
輸出格式為
%d
整形格式,
所以輸出
b
的asc碼值與
a
的asc碼值的差;
也就是
51-49=2
;
所以程序的運行結果為
2
,2
E. c語言中 如何對「輸出格式」做宏定義
#define FORMAT "~~~~"(~~~代表你要輸出的格式)
輸出的時候用printf(FORMAT,~,~,...)此處~~代表你要輸出的變數
F. C語言中的宏定義怎麼用
C語言中的宏定義用法分為兩種。
1、不帶參數的宏定義比較簡單,就是用一個指定的標識符來代表一個字元串。它的一般形式為「#define 標識符 字元串」,例如#define E 2.718281828459。這種方法使用戶能以一個簡單的名字代替一個長的字元串。
2、帶參數的宏定義不是僅僅進行簡單的字元串替換,還要進行參數替換。其定義的一般形式為;「#define 標識符(宏名)(參數表) 字元串」,字元串中包含在括弧中所指定的參數。例如#define S(a,b) a*b area=S(3. 2)。
(6)c語言輸出宏擴展閱讀:
宏定義只佔編譯時間,函數調用則佔用運行時間(分配單元,保存現場,值傳遞,返回),每次執行都要載入,所以執行相對宏定義會較慢。
使用宏定義次數多時,宏定義展開後源程序很長,因為每展開一次都使程序增長,但是執行起來比較快一點(這也不是絕對的,當有很多宏定義展開,目標文件很大,執行的時候運行時系統換頁頻繁,效率就會低下)。而函數調用不使源程序變長。
G. C語言中怎樣實現列印宏(例如#define BBBBBBB 100000,然後輸入為100000的時候列印出BBBBBB。
編譯型語言c是不能列印「預編譯宏」的,
代碼在編譯前的預編譯步驟時,所有的宏都已經被數據代替。BBBBBB都被換成100000,
再編譯時已經看不到宏。編譯後更只剩機器指令和數據。
對於重復的常量,現代編譯器通常會優化,自動歸為一個數據。不需要從常量找宏
現代的IDE也會列出項目中可用的宏。找宏也簡單。
H. 關於C語言宏定義輸出
宏定義就是字元串代替,先把整個東西代替進去 。
'a' < ( s[++i]) && ( s[++i]) < 'z' ? ( s[++i]) -'a' + 'A' : (s[++i] )
?: 這是三目運算符,從左到右。
先是'a' < s[++i] 這里是 'a' < s[1] = 'b' 成立
接下來是 s[++i] < 'z' 這里是 s[2] = 'c' < 'z' 也成立 。
所以是, ( s[++i]) -'a' + 'A' 這里其實就是小寫轉大寫
這里是, s[3] = 'd' - 'a' + 'A' 。
結果 就是D 了。。。
這就是宏定義最容易出錯的點。
I. c語言中的「宏」是指什麼
是一種批量處理的稱謂。計算機科學里的宏是一種抽象(Abstraction),它根據一系列預定義的規則替換一定的文本模式。
「宏」這個詞的使用暗示著將小命令或動作轉化為一系列指令。
計算機語言如C語言或 匯編語言有簡單的宏系統,由編譯器或匯編器的預處理器實現。C語言的宏預處理器的工作只是簡單的文本搜索和替換,使用附加的文本處理語言如M4,C程序員可以獲得更精巧的宏。
在Objective-C語言源程序中,允許用一個標識符來表示一個字元串,稱為宏,被定義為宏的標識符稱為宏名。在編譯預處理時,對程序中所有出現的宏名,都用宏定義中的字元串去替換,這稱為宏替換或宏展開。
宏定義是由源程序中的宏定義命令完成的,宏替換是由預處理程序自動完成的。在Objective-C語言中,宏分為有參數和無參數兩種。
(9)c語言輸出宏擴展閱讀
A類宏是用G65 Hxx P#xx Q#xx R#xx或G65
Hxx P#xx Qxx
Rxx格式輸入的,xx的意思就是數值,是以um級的量輸入的,比如你輸入100那就是0.1MM #xx就是變數號,變數號就是把數值代入到一個固定的地址中,固定的地址就是變數。
一般OTD系有#0~#100~#149~#500~#531.關閉電源時變數#100~#149被初始化成「空」,而變數#500~#531保持數據。我們如果說#100=30那麼現在#100地址內的數據就是30了。
B類宏能完成某一功能的一系列指令像子程序那樣存入存儲器,用戶可以設定M、S、T、G代碼調用它們,使用時只需給出這個指令代碼就能執行其功能,也可以像調用子程序一樣使用。