[英]Why don't the authors of the C99 standard specify a standard for the size of floating point types?
[英]What is the point of the C99 standard?
C99為該語言添加了一些有用的功能,但我發現很難推薦任何依賴於C99的練習。 這是因為C99語言的實際實現很少(任何?)。 當然,在一些編譯器中支持有限,但沒有人願意花時間編寫C代碼只是為了讓它不可移植。
考慮到標准是在10年前編寫並最終確定的,這是令人沮喪的。 另外,我不時聽到有關C1x的討論,我想知道為什么有人會采取措施修改語言,因為當前版本的語言還沒有實現。
所以我的問題是,作為喬今天的C程序員,我對C99標准有什么用處(如果有的話)?
MSVC不會,也不會支持C99。 但微軟幾乎沒有動力更新他們的C編譯器。 這並不是說他們會失去太多的業務。
但是有很多編譯器都支持C99。
http://en.wikipedia.org/wiki/C99#Implementations
關於gcc:
http://gcc.gnu.org/c99status.html
你是對的,或許C99對於庫代碼沒有用(並且可能永遠不會沒有微軟的支持),但如果你正在從事內部或個人項目,你可以選擇編譯器和工具,那么可移植性不是很多問題。
關於C1x,我認為值得注意的是,標准委員會非常清楚C99尚未被廣泛采用,並且不想重復相同的錯誤(或使情況更糟)。 來自C1x章程 :
與C9X不同,倫敦會議的共識是沒有任何發明,毫無例外。 只應考慮那些具有歷史並且通過商業實現共同使用的功能。 此外,必須注意以一種使標准和商業實現兼容的方式標准化這些功能。
和:
原始標准得到了用戶和供應商社區的積極響應。 但是,C99並沒有得到如此廣泛的接受。
每當您沒有鎖定在不支持C99的環境中時(尤其是嵌入式系統),您應該使用C99。
是的,如果您知道您的庫將被使用MSVC的人使用,您不能在接口中使用C99功能,但沒有理由不在實現中使用C99(當然除了庫功能依賴性之外) )。
原始答案:“呃?哪些編譯器不支持C99?當你從編譯器轉到工具時,C99實際上比C89更受支持。”
如果你關心表現,就沒有辦法restrict
。
FreeBSD現在使用Clang進行內核編譯,而且非常支持C99。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.