error與 pragma的使用

2021-09-25 01:30:32 字數 1182 閱讀 9870

#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,用於生成乙個...