第 11 章 ANSI/ISO 標準C
問題列表:
11.1 什么是“ANSI C 標準”?
11.2 我如何得到一份標準的副本?
11.3 我在哪里可以找到標準的更新?
11.4 很多ANSI 編譯器在遇到以下代碼時都會警告類型不匹配。
extern int func(float); int func(x) float x; { ...
11.5 能否混用舊式的和新型的函數(shù)語法?
11.6 為什么聲明extern int f(struct x *p); 報出了一個奇怪的警告信息“結構x 在參數(shù)列表中聲明”?
11.7 我不明白為什么我不能象這樣在初始化和數(shù)組維度中使用常量:
const int n = 5; int a[n];
11.8 既然不能修改字符串常量, 為什么不把它們定義為字符常量的數(shù)組?
11.9 “const char *p” 和“char * const p” 有何區(qū)別?
11.10 為什么我不能向接受const char ** 的函數(shù)傳入char **?
11.11 怎樣正確聲明main()?
11.12 我能否把main() 定義為void, 以避免擾人的“main無返回值”警告?
11.13 可main() 的第三個參數(shù)envp 是怎么回事?
11.14 我覺得把main() 聲明為void 不會失敗, 因為我調(diào)用了exit()而不是return , 況且我的操作系統(tǒng)也忽略了程序的退出/返回狀態(tài)。
11.15 那么到底會出什么問題?真的有什么系統(tǒng)不支持void main()嗎?
11.16 我一直用的那本書《熟練傻瓜C語言》總是使用void main() 。
11.17 從main() 中, exit(status) 和返回同樣的status 真的等價嗎?
11.18 我試圖用ANSI “字符串化” 預處理操作符# 向信息中插入符號常量的值, 但它字符串化的總是宏的名字而不是它的值。
11.19 警告信息“warning: macro replacement within a string literal” 是什么意思?
11.20 在我用#ifdef 去掉的代碼里出現(xiàn)了奇怪的語法錯誤。
11.21 #pragma 是什么, 有什么用?
11.22 “#pragma once” 是什么意思?我在一些頭文件中看到了它。
11.23 a[3] = "abc"; 合法嗎?它是什么意思?
11.24 為什么我不能對void* 指針進行運算?
11.25 memcpy() 和memmove() 有什么區(qū)別?
11.26 malloc(0) 有什么用?返回一個控指針還是指向0 字節(jié)的指針?
11.27 為什么ANSI 標準規(guī)定了外部標示符的長度和大小寫限制?
11.28 我的編譯對最簡單的測試程序報出了一大堆的語法錯誤。
11.29 為什么有些ASNI/ISO 標準庫函數(shù)未定義?
11.30 誰有把舊的C 程序轉(zhuǎn)化為ANSI C 或相反的工具, 或者自動生成原型的工具?
11.31 為什么聲稱兼容ANSI 的Frobozz Magic C 編譯器不能編譯這些代碼?
11.32 人們好像有些在意實現(xiàn)定義(implementation-defin-ed) 、未明確(unspecified) 和無定義(undefined) 行為的區(qū)別。它們的區(qū)別到底在哪里?
11.33 一個程序的“合法”, “ 有效” 或“符合” 到底是什么意思?
11.34 我很吃驚, ANSI 標準竟然有那么多沒有定義的東西。標準的唯一任務不就是讓這些東西標準化嗎?
11.35 有人說i = i++ 的行為是未定義的, 但是我剛在一個兼容ANSI的編譯器上測試, 得到了我希望的結果。
相關推薦:2010年9月計算機等級考試成績查詢時間匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |