c語言中的NULL巨集包含在在哪個標頭檔案裡

時間 2022-03-30 09:25:10

1樓:匿名使用者

巨集 null 是實現定義的空指標常量,可為值為 0 的整數常量表示式

轉型為 void* 的值為 0 的整數常量表達空指標常量能轉換為任何型別;轉換結果是該型別的空指標值。

定義於標頭檔案

定義於標頭檔案

定義於標頭檔案

定義於標頭檔案

定義於標頭檔案

定義於標頭檔案

定義於標頭檔案

#define null /*implementation-defined*/

2樓:匿名使用者

null 定義在 stddef.h 中,例如在某個 linux 發行版 stddef.h 如下:

stddef.h:

#if defined (_stddef_h) || defined (__need_null)

#undef null             /* in case has defined it. */

#ifdef __gnug__

#define null __null

#else   /* g++ */

#ifndef __cplusplus

#define null ((void *)0)

#else   /* c++ */

#define null 0

#endif  /* c++ */

#endif  /* g++ */

#endif  /* null not defined and or need null.  */

#undef  __need_null

c語言 null在哪個標頭檔案

3樓:吉祥二進位制

null巨集是定義在標準庫標頭檔案stddef.h中。巨集定義如下:

#undef null

#if defined(__cplusplus)#define null 0

#else

#define null ((void *)0)#endif

可以看出c++中 null為(int)0 , c中null為(void*)0。看來c和c++中null巨集的值略有不同。

head->next = null在c語言裡是什麼意思?

4樓:風若遠去何人留

這條語句涉及到兩個操作符,->和=,以及乙個系統巨集定義null。

1 ->在c語言中是結構體指標訪問元素的操作符。所以這裡,head必須是乙個結構體指標,而next則必須是其中的乙個元素。head->next就是對結構體指標變數head取其成員變數next的操作。

2 =在c語言中為賦值操作符。在這裡是將head->next賦值為null。

3 null不是c語言的關鍵字,但是是定義在標準標頭檔案中的巨集定義,其定義形式為

#define null (void *)0

即空指標。

所以head->next=null就是把head指向的結構體中的next元素,賦值為空指標。

5樓:匿名使用者

for(i=0;i<=max;i++) head->name[i]=datename[i]; // 該迴圈是將datename的頭max個字元複製到head->name中,等價於 strncpy(head->name,datename,max),head是結點型指標,該型別資料中包含有char name字元陣列,head不是指向name,而是指向name所在結點的首位址。

6樓:匿名使用者

釋放頭指標指向的下乙個儲存空間

c語言中,要使用__func__需要包含哪些標頭檔案或巨集定義?

7樓:匿名使用者

最好不要用下劃線開始的變數名或函式名,因為系統的標頭檔案中,許多是以下劃線開始的。當然,函式(或變數)名__func__,這並不是系統已用的名稱,直接定義、使用即可,不需要另外增加標頭檔案的支援。

8樓:風若遠去何人留

__func__是預置在編譯器中的巨集,並不包含於任何標頭檔案,所以直接呼叫即可,不需要做任何其它操作。

__func__是乙個字串,值為呼叫__func__函式的函式名。

比如void test_func(void)這時的__func__的值就是常量字串"test_func"。

由於__func__並不是c語言規範中規定的必須巨集定義,所以並不是所有編譯器都可以支援。當呼叫__func__編譯出錯情況下,即為編譯器不支援該巨集,需要自行修改程式。比如手動在需要的函式入口處定義乙個顯式的__func__巨集。

比如void test_func(void)

9樓:幫個忙好不

你這是自定義函式,有個stdio。h就可以了,用到巨集定義你才加巨集定義

10樓:丶龍五灬

#include

#define n

c語言中nop()函式是包含在哪個標頭檔案中的?

11樓:修曄公尺春

在微控制器c語言中_nop_()包含在標頭檔案intrins.h中。

_nop_()是乙個空操作,對應於組合語言中的nop語句。執行該函式,將占用1個機器週期的時間,常用於區域性短暫延時。比如執行以下程式段,12m晶振的情況下,將在p0口產生頻率為250k的方波。

while(1)

12樓:匿名使用者

1、c語言中沒有_nop_()函式,該函式是在51微控制器中用的延時函式,延時乙個指令週期。一般包含在 intrins.h 標頭檔案當中。

2、例如用6mhz的晶振,則如下for迴圈大約延時1秒。

int i;

for(i=0; i<6000000; i++)_nop_(); // 延時乙個指令週期,相當於執行一條無意義的語言

13樓:手機使用者

nop() 這個函式不是c語言的庫函式... vb裡面好像有... c51微控制器程式設計裡面也有.

在微控制器c語言中_nop_()語句包含在哪個標頭檔案當?

14樓:匿名使用者

在微控制器c語言中_nop_()包含在標頭檔案intrins.h中。

_nop_()是乙個空操作,對應於組合語言中的nop語句。執行該函式,將占用1個機器週期的時間,常用於區域性短暫延時。比如執行以下程式段,12m晶振的情況下,將在p0口產生頻率為250k的方波。

while(1)

15樓:

包含在標頭檔案 intrins.h中。

16樓:匿名使用者

如果你想用c語言就不能再用nop了,nop是彙編中的。c語言中的空操作就是乙個「 ;」,而且我們用c的時候,有個頭檔案#include 這樣我們用的暫存器,p0-3口都是預定義好了的,可以直接使用,但彙編中的操作就不能再用了,好好體會

17樓:匿名使用者

這個是空指令,

如果一定要用,用;代替也可以達到效果的.

18樓:

#include "intrins.h"// _nop_();

應該是最佳答案了吧?!

c語言中巨集替換的替換規則,C語言中,巨集替換的替換規則

焉秋梵正 簡單來說 巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 巨集替換是c c 的預處理中的一部分,在c 標準中有4條規則來定義替換。規則1 實參替換。本條規則描述帶引數的巨集的替換過程。對於巨集定義中的形參,在替換列表中,如果不是作為 或 的運算元,那麼將對應實參完全 相當於對實參進行求值 然...

c語言中巨集定義的define和typedef的區別是什麼

1 define是預處理指令,在編譯預處理時進行簡單的替換,不作正確性檢查,不關含義是否正確照樣帶入,只有在編譯已被的源程式時才會發現可能的錯誤並報錯。例如 define pi 3.1415926 程式中的 area pi r r 會替換為3.1415926 r r 如果你把 define語句中的數...

C語言多次賦值問題,C語言中使用巨集定義多次賦值的問題

項成郟卯 a正確顯然,b正確n2 n3直接截斷小數部分返回一個整數,c正確,賦值語句是左優先順序的,這個語句先把j賦給i,再把i賦給k,d是不正確的,和c類似,不過第一次賦值,b c 1,賦值語句的左側是變數,不能是一個表示式, 鍾全婁卯 如果要達到原來的效果,就不可能寫成後面的形式。s a i a...