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...