⑴ 預處理指令只能位於C源程序文件的首部嗎 為什麼
是。
預處理命令是以「#」號開頭的命令,它們不是c語言的可執行命令,這些命令應該在函數之外書寫,一般在源文件的最前面書寫,稱為預處理部分。
在C編譯系統編譯源程序之前,先要對源程序中的預處理命令進行處理,處理完畢之後才能對源程序進行編譯。在全屏幕編輯環境下,預處理是在編譯之前自動由系統處理的。 因為大多數程序都用這個printf函數,而這個函數的頭文件是「stdio.h」,所以一般要包括上。
(1)編譯預處理命令是不是c語言的程序擴展閱讀:
預處理是C語言的一個重要功能,它由預處理程序負責完成。當對一個源文件進行編譯時,系統將自動引用預處理程序對源程序中的預處理部分作處理,處理完畢自動進入對源程序的編譯。
C語言提供多種預處理功能,主要處理#開始的預編譯指令,如宏定義(#define)、文件包含(#include)、條件編譯(#ifdef)等。合理使用預處理功能編寫的程序便於閱讀、修改、移植和調試,也有利於模塊化程序設計。
⑵ 關於C語言預處理命令
第一句有問題。
比如
#ifndef WIN32
#endif printf("OK\n");
在這里,這個printf就不會被執行。也就是說, 一行中, 只能有一條預處理指令,
當編譯的預處理階段, 編譯器識別了一條完整的預處理指令後,後面的所有東西他都不要了。
對於第二句,在函數里,我們是可以使用預處理指令的。
比如
void fun(void)
{
#ifdef WIN32
... // 對於windows系統環境的操作
#else
... // 對於windows以外的系統環境的操作
#endif /* WIN32 */
...
}
樓上的同學, 你是在哪兒本書上看的? 介紹一下唄
⑶ 編譯預處理行是c語言的合法語句
是合法的燃橋空。
預編譯這個概念就是C/C++提出來的。
別的編消困程語言沒有預處理這個概皮瞎念。
⑷ C語言「編譯預處理命令」,是什麼意思
您好,
宏定義
c程序提供的預處理功能之一。包括帶參數的宏定義和不帶參數的宏定義。具體是指用一個指定的標志符來進行簡單的字元串替換或者進行闡述替換。形式為:
#define
標志符(參數表)
字元串
宏名
在上定義中的標志符被稱為「宏名」。
宏展開
在c程序編譯時將宏名替換成字元串的過程稱為「宏展開」。
define
是對宏的定義:如定義了一個宏m,代表100.也就在下面的程序中只要是遇到變數m,它的值就是100
⑸ 預處理命令不是C語言本身的組成部分,那它屬於什麼
他不屬於C語言本身,慧塌是編譯程前塌圓序不能識別他們,所以必須在衫敏對程序進行通常的編譯之前對程序中的特殊命令進行預處理。
⑹ C語言中,include是什麼意思
在C系統的編程語言中,#include是為了聲明在這個地方插入別的文件中的代碼。
以#開頭,包含某個頭文件,如#include <stdio.h>,就是相當於引用stdio.h這個文件,然後這個文件裡面所定義的一些函數就可以直接使用了。
(6)編譯預處理命令是不是c語言的程序擴展閱讀
include()語句包含並運行指定文件。
以下文檔也適用於require()。這兩種結構除了在如何處理失敗之外完全一樣。include()產生一個警告而require()則導致一個致命錯誤。換句話說,如果想在遇到丟失文件時停止處理頁面就用require()。include()就不是這樣,腳本會繼續運行。
同時也要確認設置了合適的 include_path。注意在 php 4.3.5 之前,包含文件中的語法錯誤不會導致程序停止,但從此版本之後會。
尋找包含文件的順序先是在當前工作目錄的相對的 include_path 下尋找,然後是當前運行腳本所在目錄相對的 include_path 下尋找。
例如 include_path 是 .,當前工作目錄是 /www/,腳本中要 include 一個 include/a.php 並且在該文件中有一句 include "b.php",則尋找 b.php 的順序先是 /www/,然後是 /www/include/。如果文件名以 ../ 開始,則只在當前工作目錄相對的 include_path 下尋找。
當一個文件被包含時,其中所包含的代碼繼承了 include 所在行的變數范圍。從該處開始,調用文件在該行處可用的任何變數在被調用的文件中也都可用。不過所有在包含文件中定義的函數和類都具有全局作用域。
⑺ 編譯預處理命令可以看做是一行c語言
可以。但是祥森明這是編譯器的預處理命令,只在編譯時執行一次,編譯後不再執行。
即:這是C語言中僅僅用於C編譯器的一種命令。你的C程序實謹告際執行時這些這些命令春襪並不存在。
⑻ 預處理指令在c語言中是什麼東西,他是什麼作用
C程序的源代碼中可包括各種編譯指令,這些指令稱為預處理命令。雖然它們實際上不是C語言的一部分,但卻擴展了C程序設計的環境。所有預處理命令均以符號#開頭.
不同的預處理指令有不同的作用
比如命令#define定義了一個標識符及一個串。在源程序中每次遇到該標識符時,均以定義的串代換它。ANSI標准將標識符定義為宏名,將替換過程稱為宏替換
還有其他預處理命令
#define,#error,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pragma等 可以自己查查
⑼ c語言源程序是有什麼組成的
所有編程語言本質上都是由演算法+數據結構組成的。
一個C語言源程序,是由一含卜緩個或多個函數定義順序組成的,其中必須有一個函數名為main的函數,main()函數又稱為主函數。C語言源程序的次要構成成分有:編譯預處理命令、注釋和聲明。
主函數被編譯程序翻譯成一個機器弊段語言形式的主程序段,任何其他函數都將被編譯程序翻譯成機器語言形式的子程序段。
換言之,C語言源程序中的函數,並非數學中時常顯得有些高深莫測的函數,它只是完成特定數據處理任務的、功能上獨立的一個程序段而已。
(9)編譯預處理命令是不是c語言的程序擴展閱讀:
C語言特有特點
1、C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
2、C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(談模a pointer passed by value)。
3、不同的變數類型可以用結構體(struct)組合在一起。
4、只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。
5、部份的變數類型可以轉換,例如整型和字元型變數。
6、通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
7、預編譯處理(preprocessor)讓C語言的編譯更具有彈性。
參考資料:網路-C語言