簡體   English   中英

C ++庫的C部分是自動C99嗎?

[英]Is the C part of the C++ library automatically C99?

符合C ++ 98/03 / 0x實現的所有函數是否完全符合C99?

我認為C ++ 0x添加了一些C99( 語言 )功能,但從未聽過或讀過任何關於C庫函數的確定性。

為了避免任何混淆,我在談論使用<c*>標頭集中聲明的函數的C ++程序。

謝謝。

大多數C99標准庫都是用C ++ 0X導入的,但不是全部。 從記憶中,在那里沒有進口的東西

  • <ctgmath>只包含<ccomplex><cmath>
  • <ccomplex>表現得好像包含<complex>
  • <cmath>有相當多的調整(提供過載和模板功能完成C99提供的一個)
  • 其他一些標題( <cstdbool><iso646.h> ,...)進行了調整以考慮語言之間的差異( bool在C ++中是原始的,例如在C中由<stdbool.h>提供的宏),但是沒有數學部分的范圍。

<xxx.h><cxx>形式不像C99版本那樣只是在全局命名空間中聲明了<cxxx>的內容,它們並不接近C99 <xxx.h>內容。

相關的事情:C ++ 0X提供cxxx和xxx.h形式的一些頭文件,這些頭文件未在C99中定義( <cstdalign><cuchar> ,第二個在C TR中定義)

(我記得C99中的一堆數學函數已放在TR1中,但沒有保存在C ++ 0X中,我錯了,一堆數學函數首先不是C99的一部分)。

No. C ++ 03與ANSI C89 / ISO C90對齊,而不是C99。

即將推出的C ++ 0x標准在某種程度上與C99保持一致。 參見當前草案中的第17.6.1.2段,其中列出了ccomplexcinttypescstdint等。請注意,正如AProgrammer所提到的,一些標題並不完全相同; 此外,標題cucharC技術報告19769而不是C99對齊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM