c語言中的__FILE__和__LINE__的作用
這是編譯器內建巨集,這些巨集定義不僅可以幫助我們完成跨平臺的原始碼編寫,靈活使用也可以巧妙地幫我們輸出非常有用的除錯資訊。
例如:printf("FILE: %d, LINE: %d, %s/n", "__FILE__, __LINE__, "這裡寫上相關資訊");
ANSI C標準中幾個標準預定義巨集:
__LINE__:在原始碼中插入當前原始碼行號;
__FILE__:在原始檔中插入當前原始檔名;
__DATE__:在原始檔中插入當前的編譯日期;
__TIME__:在原始檔中插入當前編譯時間;
__STDC__:當要求程式嚴格遵循ANSI C標準時該標識被賦值為1;
__cplusplus:當編寫C++程式時該識別符號被定義。
相關推薦
C語言中__FILE__ 和__LINE__ 等巨集的含義
int main(int argc, char *argv[]) { printf( "file=%s/nline=%s ",__FILE__,__LINE__); return (0); }
C語言程式語言科技 c語言中的= 和= =有什麼區別?(精華篇)
一等賦,二等於。 C語言中,很多初學者經常會弄混 = 與 == 。我們從小學習數學時就知道“ = ”是 “等於”的意思,可是在C語言中,“ = ”就不是等於的意思了。 我寫了如下的C語言程式碼: 在上述C語言程式碼中,整型變數 a 的初始值是0。在兩個 if 語句判
C語言中的*和&符號
之前對*和&符號一直理解的比較淺顯。只知道: *p好像表示的是一個指標; &p表示的是一個地址。 然而這次當遇到了下面這個情況的時候: int a = 10; int *b = &a; printf(“%d\n”, a); printf(“%d\n”, &
C語言中宣告和定義詳解
變數宣告和變數定義 變數定義:用於為變數分配儲存空間,還可為變數指定初始值。程式中,變數有且僅有一個定義。 變數宣告:用於向程式表明變數的型別和名字。 定義也是宣告,extern宣告不是定義 定義也是宣告:當定義變數時我們聲明瞭它的型別和
全程剖析C語言中堆和棧的區別
1.申請方式 (1)棧(satck):由系統自動分配。例如,宣告在函式中一個區域性變數int b;系統自動在棧中為b開闢空間。 (2)堆(heap):需程式設計師自己申請(呼叫malloc,realloc,calloc),並指明大小,並由程式設計師進行釋放。容易產生memory leak. eg:
C語言中變數和函式的宣告與定義
一、變數在將變數前,先解釋一下宣告和定義這兩個概念。宣告一個變數意味著向編譯器描述變數的型別,但並不為變數分配儲存空間。定義一個變數意味著在宣告變數的同時還要為變數分配儲存空間。在定義一個變數的同時還可以對變數進行初始化。 區域性變數通常只定義不宣告,而全域性變數多在原始檔中定義,在標頭檔案中宣告。 區域性變
C語言中堆和棧的區別
格式和部分內容稍作修改。 在計算機領域,堆疊是一個不容忽視的概念,我們編寫的C語言程式基本上都要用到。但對於很多的初學著來說,堆疊是一個很模糊的概念。堆疊:一種資料結構、一個在程式執行時用於存放的地方,這可能是很多初學者的認識,因為我曾經就是這麼想的和組合語言中的堆疊一
C語言中的四種作用域
C語言編譯器可以確認四種不同型別的作用域: 一.程式碼塊作用域。 在K&R C中,函式形參的作用域始於形參的宣告處,位於函式體之外如果函式體內部聲明瞭名字相同的區域性變數,他們就將隱藏起來;ANSI C遏止了這種錯誤的可能性,它把形參的作用域設定為整個函式體。
C語言中常量和變數
在C語言中,常量和變數都是可以用來儲存和表示資料的,常量值在程式執行的過程中是不可變的,而變數是可變的 1,常量的概念 常量是不可變的量,C語言中數值可以用常量表示,常量可以表示各種資
C語言中前置++和後置++的區別
直接上程式碼 #include <stdio.h> int main(int argc, char* argv[]) { int a = 6; printf("%d\n",a++); //輸出為6,返回的是暫存器的值,而不是加後的
c語言中逗號運算子的作用
在C語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。 假設b=2,c=7,d=5, a1=(++b,c--,d+3); a2=++b,c--,d+3; 對於第一行程式碼,有三個表示式,用逗號分開,所以最終的值應該是最後一個表示
c語言中函式宣告的作用
在c語言中函式宣告不是必須的,即使沒有宣告函式,gcc編譯器也只是會提示警告。但是函式宣告卻是很有必要的。 那麼函式宣告到底有宣告作用呢? 其實函式宣告的作用是讓編譯器幫你檢查你呼叫函式時有沒有錯誤。比如引數的數量是否正確,如果呼叫函式時候少 傳入一個引數,並且沒有宣告該函
C語言中宣告和定義的區別——分析extern關鍵詞。
一直很迷惑C語言中的宣告和定義的有些實踐中的用法,說迷惑實踐是因為宣告和定義的概念上的區別是很明確的。 定義和宣告的區別(主要針對變數): 定義是要為變數分配儲存空間,還可以在定義的時候為變數指定初始值。在一個程式中,變數有且僅有一次定義。 宣告用於向程式表明變數的型別和名
c語言中的__FILE__和__LINE__的作用
這是編譯器內建巨集,這些巨集定義不僅可以幫助我們完成跨平臺的原始碼編寫,靈活使用也可以巧妙地幫我們輸出非常有用的除錯資訊。 例如:printf("FILE: %d, LINE: %d, %s/n", "__FILE__, __LINE__, "這裡寫上相關資訊"); ANS
C語言中的__FILE__、__LINE__和#line用法
C語言中的__FILE__用以指示本行語句所在原始檔的檔案。 例如: #include <stdio.h>int main(){printf("%s\n",__FILE__);} 在g
C語言中的__FILE__、__LINE__和__func__等預定義跟蹤除錯
標準C語言預處理要求定義某些物件巨集,每個預定義巨集的名稱一兩個下劃線字元開頭和結尾,這些預定義巨集不能被取消定義(#undef)或由程式設計人員重新定義。下面預定義巨集表,被我抄了下來。 __LIN
C語言中的__FILE__、__LINE__和#line(用於列印當前函式及行數)
C語言中的__FILE__用以指示本行語句所在原始檔的檔名,舉例如下(test.c):#include <stdio.h>int main(){printf("%s\n",__FILE__);}在gcc編譯生成a.out,執行後輸出結果為:test.
C語言中的作用域,鏈接屬性和存儲類型
硬件 變量的存儲 bsp 文件的 tro 們的 沒有 聲明 一個 作用域 當變量在程序的某個部分被聲明的時候,他只有在程序的一定漁區才能被訪問,編譯器可以確認4種不同類型的作用域:文件作用域,函數作用域,代碼塊作用域和原型作用域 1.代碼塊作用域:位於一對花括號之間的所
C語言中關鍵字作用(const和static和extern)
儲存型別關鍵字(4個): auto: 宣告自動變數,現在一般不用(auto int a;和int a;一樣) register: 宣告暫存器變數 static: 宣告靜態變數。該變數宣告時系統所分配的
C語言中關鍵字static、extern和auto的作用總結
1、首先說一下auto自動儲存型別,一般我們很少在程式中顯示申明變數為auto型別。因為程式碼塊中的變數預設情況下就是這種型別,這種型別的變數存放於堆疊中,也就是說只有程式執行這些程式碼塊(一對{}之間的語句)時這種自動變數才會被建立,程式碼塊執行結束後自動變數便被釋放。