1樓:匿名使用者
#define 定義的就是個常數,沒有型別資訊的要限制型別你可以用
const type costant = value例如const float pi = 3.1415926ps:c裡沒有字串型別
2樓:我行你素
字串,常量要用const double pi 3.141592 定義
在巨集定義#define pi 3.1415926中,用巨集名pi代替了一個()。
3樓:那年丶人已散盡
c語言中有明確規定,巨集定義是利用#define命令,用一個指定的標識代替一個字串。對應到題目上就是#define 識別符號 字串,所以pi是識別符號,3.1415926是字串。
所以這題選b
關於c選項,如果3.1415926不在巨集函式定義中,那麼它就是一個常量,只是因為它在#define命令中,所以它是一個字串。
a選項,單精度數是指計算機表達實數近似值的一種方式,而不是隻明確的值,故錯。
d選項,雙精度數也是值計算機表達實數近似值的一種方式,而不是隻明確的值,故錯。但是和單精度數有一點區別。具體體現在數字的範圍上。
擴充套件資料
巨集是一種預處理指令,它提供了一種機制,可以用來替換源**中的字串。
1、條件編譯:
c語言中,預處理過程讀入源**,檢查包含預處理指令的語句和巨集定義,並對源**進行相應的轉換,預處理過程還會刪除程式中的註釋和多餘的空白符號。
預處理指令是以#開頭的**行,#必須是該行除了空白字元外的第一個字元。#後是指令關鍵字,在#和指令關鍵字之間允許存在若干空白字元。
2、巨集函式:
函式的呼叫是需要一定的時間和空間代價的。因為系統在呼叫函式時,需要保留"現場",即將程式要執行的指令的下一條指令的位置壓入棧,然後轉入呼叫函式去執行,呼叫完函式後再返回主調函式,恢復"現場",返回到棧裡儲存的的下一條指令的位置繼續執行。
所以函式的呼叫需要額外的時間和空間代價。
而巨集函式則不存在上述問題,巨集函式在預編譯時,同函式定義的**來替換函式名,將函式**段嵌入到當前程式,不會產生函式呼叫。
4樓:呵呵呵呵
在#define中,標準只定義了#和##兩種操作。#用來把引數轉換成字串,##則用來連線前後兩個引數,把它們變成一個字串。
執行結果如下:
5樓:奕讓端雪
寫錯了吧。pi和3之間有個空格。
#define
pi3.14159
你的巨集沒有引數,不需要代替為()
6樓:匿名使用者
我剛剛翻了《c程式設計(第三版)》,裡面對巨集的具體定義是: #define 識別符號 字串。
。。我覺得應該果斷相信書裡面的定義
7樓:無敵理工男
c語言上有明確定義,巨集定義是利用#define命令,用一個指定的標識代替一個字串。
8樓:東方箭
在巨集定義中是沒有資料型別的,只是純粹的用 3.1415926替換pi
9樓:匿名使用者
我覺得選c,它字元常量,如果真是選b,知道後回帖。
10樓:友人改變自己
我也翻了翻書《c語言程式設計(第三版)》,面對巨集的具體定義是: #define 巨集名 替換文字,其中替換文字是一個不用雙引號引起來的一串字元(字串)。
選b妥妥的。
11樓:匿名使用者
要注意一下,如果是#define 3.14159那就是常量,但是如果有雙撇號,"3.14159"那是字串
12樓:驕子
選b.在第三版c語言,p204倒數第二段有明確的強調。
在巨集定義 #define pi 3.14159中,用巨集名pi代替一個 a) 單精度數 b) 雙精度數 c) 常量 d) 字串
13樓:
答案是d 編譯預處理的時候,巨集名pi將被字串「3.14159「代替,這一替換過程稱為巨集
巨集的定義格式為
#define 巨集名 字串或者字元
14樓:匿名使用者
c define是定義常量的
15樓:匿名使用者
不用我說了吧,進來看看。
在巨集定義#define pi 3.14159中,巨集名pi代替的是一個() a.常量 b.單精度
16樓:匿名使用者
d 巨集定義是在預編譯階段,把給定的符號常量代替的字串把源程式中的該符號進行字串的替換也就是簡單的文字替換,不檢查語法錯誤
17樓:匿名使用者
#define 識別符號 字串 ;
書上的定義
18樓:青春染紅手指
巨集定義定義的是常量,是沒有資料型別的。
在巨集定義#define pi3.14159中,用巨集名pi代替一個
19樓:匿名使用者
因為巨集定義define做的是最簡單的文字替換,單純的就是把這行以後的**中,出現的pi換成3.14159這個文字(也就是字串)。
20樓:
float能有6-7有效數copy字
double能有15位
比如πbai=3.1415926535897932384626433832795
float 3.141593 如果du
顯示的更多的話就是zhi不一定的數值了daodouble 3.1415926535897
21樓:匿名使用者
答案不是數值,而是字串,至於為什麼我還不知道,所以到這來看,結果也是沒有。
22樓:匿名使用者
答案是:字串啊帥鍋。。。
23樓:匿名使用者
const double pi=3.14159;
9. 巨集定義#define pi 31.14159中,巨集名pi代替______________。 (2分)
24樓:菜刀撒
這句話的意思就是 用pi來取代31.14159 當然是常量了 c
在巨集定義#define pi 3.14159中,表示程式中用巨集名pi代替一個字串
25樓:匿名使用者
好像是代替數字
不是字串
26樓:久力
但是答案上說是代替一個字串。。。
在巨集定義define pi3 14159中,用巨集名pi代替
因為巨集定義define做的是最簡單的文字替換,單純的就是把這行以後的 中,出現的pi換成3.14159這個文字 也就是字串 float能有6 7有效數copy字 double能有15位 比如 bai 3.1415926535897932384626433832795 float 3.141593 ...
在C語言學習中什麼叫巨集定義,在C語言中巨集是什麼意思?
巨集定義是高階語言編譯器提供的常用語法,其目的是利用某一識別符號標識某個文字字串。在編寫程式時,如果程式中反覆地使用某個資料或某段程式片段,就可以考慮將這個資料或程式片段定義為巨集,然後每個出現該資料或程式片段的地方用巨集名替代,這樣做的好處是程式簡潔,可讀性好,而且當需要修改這些相同的程式片段時,...
c檔案中定義的巨集,在另c檔案中使用
直接在b.c中重新定義一下,把a中的定義複製貼上一下,簡單粗暴。或者把a中的巨集定義改寫到標頭檔案中。例如定義hong 為 1234,標頭檔案裡寫 ifndef hong define hong 1234 endif 前後兩句是保護,避免標頭檔案多次 include 時 重複定義hong 在b.c檔...