#error 生成乙個變異錯誤資訊,可用於提示編譯條件是否滿足。
用法#error message
注:message不需要雙引號括起來
#pragma用於指示編譯器完成一些特定的動作,並且不同的編譯器之間不可進行移植。
#pragma的用法:
#pragma parameter
注:不同的parameter引數語法和意義不同。
下面,讓我們來看看#error以及#pragma具體的使用
#includevoid f()
int main()
[lin@bogon c]$ gcc 24_class.c
24_class.c: in function 『f』:
24_class.c:7: note: #pragma message: good
24_class.c:8:3: error: #error please input dog
以上就是程式的輸出結果。
#pragma還有乙個用法,就是調整記憶體的對齊方式。讓我們先來看一段程式。
#includestruct test1;
struct test2;
int main()
我們可以自己先算一下,看程式輸出的值是多少。
這裡,首先要說一下怎麼計算struct所占用的記憶體大小:
第乙個成員起始為0的偏移量
每個成員按其型別大小以及pack引數(預設情況下取值為4)中較小的作為其大小,且偏移位址必須被對齊數整除,結構體成員取其內部長度最大的資料成員作為其大小。
總長度必須為對齊引數的整數倍
這樣說起來很繞,不如直接計算一下就知道了
struct test1;
這樣子計算出來的答案就是8+4=12。同樣的道理,就能的出struct test2所佔據的記憶體大小為8。那麼,怎麼設定對齊引數呢。下面,我們在看看一下的程式**。
#include#pragma pack(1)
struct test1;
struct test2;
#pragma pack()
int main()
通過#pragma pack()就能對對齊引數進行調整,這樣子兩個結構體的記憶體大小就完全相同了 關於pragma命令的使用
include intmain int argc char ar 在codebloks編譯的結果為 build debug in define undef compiler gnu gcc compiler mingw32 gcc.exe wall g c d desktop codebloksfi...
error作用與舉例
2013 09 05 14 32 17 error命令是c c 語言的預處理命令之一,當預處理器預處理到 error命令時將停止編譯並輸出使用者自定義的錯誤訊息。語法 error 使用者自定義的錯誤訊息 注 上述語法成份中的方括號 代表使用者自定義的錯誤訊息可以省略不寫。舉例1 error sorr...
C語言中 error與 line使用分析
事物的難度遠遠低於對事物的恐懼!這個篇章我們來聊聊 error 和 line兩個指令。error 用於給程式設計師自定義特有的編譯錯誤訊息,用法為 error message 注意 message不需要雙引號 示例 error this is a error 類似的還有 warning,用於生成乙個...