為什麼A是對的,預處理命令行都必須以#號開始 才是對的把
A) 如果代碼是注釋它就不起作用了.如
/*注釋
#define
*/ A可以說對也可以說錯看你咬文嚼字到什麼程度
B) 預處理命令行不可以 宏定義是可以的
C) 對的
D) 預處理當然是最先處理,比編譯,鏈接都早 怎麼可能在執行過程中進行
如果是考試我選錯誤最明顯的..選D 嗯...
C語言裏麵的預處理是什麼意思?
預處理?功能主要包括:
宏定義,文件包含,條件編譯三部分。
分別對應宏定義命令,文件包含命令,條件編譯命令?三部分實現。
預處理過程讀入源代碼,檢查包含預處理指令的語句和宏定義,
並對源代碼進行響應的轉換。預處理過程還會刪除程序中的注釋
和多餘的空白字符。
預處理指令是以#號開頭的代碼行。
#號必須是該行除了任何空白字符外的第一個字符。
#後是指令關鍵字,在關鍵字和#號之間允許存在任意
個數的空白字符。整行語句構成了一條預處理指令,
該指令將在編譯器進行編譯之前對源代碼做某些轉換。
指令?????????????用途
#??????????? ?空指令,無任何效果
#include???????包含一個源代碼文件
#define????????定義宏
#undef?????????取消已定義的宏
#if????????? ?如果給定條件為真,則編譯下麵代碼
#ifdef?????????如果宏已經定義,則編譯下麵代碼
#ifndef????????如果宏沒有定義,則編譯下麵代碼
#elif??????????如果前麵的#if給定條件不為真,當前條件為真,則編譯下麵代碼
#endif?????????結束一個#if……#else條件編譯塊
#error?????????停止編譯並顯示錯誤信息
#else??????????條件編譯的否則選項
#error?????????指令將使編譯器顯示一條錯誤信息,然後停止編譯。
#line??????????指令可以改變編譯器用來指出警告和錯誤信息的文件號和行號。
#pragma????????指令沒有正式的定義。編譯器可以自定義其用途。典型的用法是禁止或允許某些煩人的警告信息。
文件包含
在程序中包含頭文件有兩種格式:
#include? #include?"my.h" 第一種方法是用尖括號把頭文件括起來。 這種格式告訴預處理程序在編譯器自帶的或 外部庫的頭文件中搜索被包含的頭文件。 第二種方法是用雙引號把頭文件括起來。 這種格式告訴預處理程序在當前被編譯的 應用程序的源代碼文件中搜索被包含的頭文件, 如果找不到,再搜索編譯器自帶的頭文件。 采用兩種不同包含格式的理由在於,編譯器是 安裝在公共子目錄下的,而被編譯的應用程序 是在它們自己的私有子目錄下的。一個應用程序 既包含編譯器提供的公共頭文件,也包含自定義 的私有頭文件。采用兩種不同的包含格式使得編 譯器能夠在很多頭文件中區別出一組公共的頭文件。 舉個例子: #include #include #include #define?SIX?6 #define?SEVEN?7 #define?Cube(x)?(x)*(x)*(x) #define?VERSION?"tzs" #define?PASTE(n)?"最終勝利者是:"#n #define?NUM(a,b,c)?a##b##c #define?STR(a,b,c)?a##b##c #define?DEBUG?1 int?main() { int?i; i?=?SIX?+?SEVEN; printf("i?=?%d\n",i); i?=?(SIX?*?SEVEN); printf("i?=?%d\n",i); i?=?Cube(3); printf("i?=?%d\n",i); printf("%s",VERSION); printf("%s",PASTE(桃子)); puts(PASTE(yy/)); puts(PASTE(xx)); printf("%d\n",NUM(1,2,3)); //printf("%s\n",STR("aa","bb","cc")); #if?DEBUG printf("Debugging\n"); printf("Debugging2222\n"); #endif printf("Running\n"); #if?defined?DEBUG printf("yes\n"); #endif #if?!defined?JJ printf("no?JJ\n"); #endif } 編譯預處理有如下幾種: 1、頭文件包含 #include 2、宏定義 #define 3、條件編譯 #ifdef #endif 綜上所述,C語言有效的預處理命令總是以"#"開頭 C語言中#開頭的是預處理指令,不是C語句的一部分#開頭的語句,在預處理階段,由預處理器處理,例如:#include預處理器會將stdio.h文件的內容加入到當前文件的頭部,而#defineCONST10則會將文件中的CONST,用10代替(是直接代替)預處理完畢後,才對文件進行編譯。 對相關命令或語句的含義和功能作具體分析。 * 預處理pre-treatment,是指在進行最後加工完善以前進行的準備過程,具體應用在不同的行業或領域,會有不同的解釋。在一些程序設計語言中,預處理是preprocessing的翻譯。 * ANSI C 標準規定可以在C源程序中加入一些 預處理命令,以改進程序設計環境,提高編程效率,這此預處理偽政府是由ANSI C 統一規定的,但是它不是C語言本身的組成部分,不能直接對它們進行編譯。 * 在計算機技術中,“指令”是由指令集架構定義的單個的CPU操作。在更廣泛的意義上,“指令”可以是任何可執行程序的元素的表述,例如字節碼。 * 在傳統的構架上,指令包括一個操作碼opcode,它指定了要進行什麼樣的操作,例如“將存儲器中的內容與寄存器中的內容相加”,和零個或者更多的操作數operand,它可能指定了參與操作的寄存器、內存地址或者立即數literal data。 * 操作數可能還包括尋址方式,它確定了操作數的含義。 什麼沒有輸入 scanf就是輸入啊 getchar也是 預處理是指頭文件麼 #include C語言中 一行隻能有一個預處理命令,預處理命令行一定要以#開頭,但預處理命令的內容不一定每行以#開頭 如: #define MAX(a,b) \ ((a)<> \ 在預處理命令裏叫做續行符。 預處理命令行不可以和定義語句 或 可執行語句 放在一行之中 C語言有編輯、編譯、執行三大過程。 C語言在編譯前由預處理器對預處理命令進行處理,編譯時進行語法分析。 執行過程就是運行程序。 C語言的預處理主要有三個方麵的內容: 1.宏定義; 2.文件包含; 3.條件編譯。 預處理命令以符號“#”開頭。 宏定義命令:#define、#undef,用來定義和解除宏。(值得注意的是還可以定義帶參數的宏) 文件包含命令:#include "文件名" 或者 #include <文件名>。使用前者時會優先從當前目錄查找頭文件,使用後者時優先從默認的係統目錄查找。 條件編譯:#ifdef、#else、#endif、#elif 等。出於程序兼容性的考慮,有些語句希望在條件滿足時才編譯。這時候會用到條件編譯的命令。 其實這兩個都是正確的! 錯誤的是C 程序在執行過程中對預處理命令行進行處理。 是在執行過程之前,所以才稱為預處理,就是先於程序處理的意思。 轉載請注明出處句子大全網 » 為什麼A是對的,預處理命令行都必須以C語言有效的預處理命令總是以什麼開頭
c語言中,以"#"開頭的語句行都是預處理命令嗎?
預處理指令有什麼作用?
c語言中沒有輸入什麼意思,c語言中的編譯預處理命令是固定要寫的嗎
C語言 一行隻能有一個預處理命令嗎?
以下關於編譯預處理的敘述中錯誤的是 。
c語言中預處理命令都有哪些?
9.2 以下敘述中不正確的是 A)預處理命令行都必須以#號開始 B)在程序中凡是以#號開始的語句行都是預處理