2010-03-30 29 views
3

size_t是否僅限於C++標準或C標準?size_t僅在C++標準或C標準中嗎?

我在定義size_t的「/ usr/include」樹中找不到C頭。

如果它不在C標準中,GCC只是在做一些神奇的事情來使事情發揮作用嗎?

謝謝, Chenz

+1

文件列表,你爲什麼認爲這應該是在/ usr/include目錄? – 2010-03-30 18:40:15

+0

尼爾是對的,你看錯了地方。 C++頭文件位於/ usr/include/C++/$ {gcc-version} – 2010-03-31 08:32:21

回答

4

從C99草案:

7.17通用定義<stddef.h>

  1. 以下類型和宏定義在標準標題<stddef.h>中。某些 也在其他標題中定義,如各自子條款中所述。

  2. 的類型是[ - 剪斷 - ]

    size_t 
    

    這是sizeof操作符的結果的無符號整數類型; [ - 剪斷 - ]

+1

「其他頭文件」部分適用於'size_t',它也在''中聲明(見7.20/2)。 – sth 2010-03-30 18:46:20

5

size_t在兩個<stddef.h><stdlib.h>

0

爲size_t被定義爲stdlib.h爲C(或在cstdlib.h C++)。

0

它在ansi c的string.h中定義。

2

的size_t是C標準庫

它宣佈

#include <stddef.h> //For C 
#include <cstddef> //For C++ 
1

$ grep -R -P "typedef.*\s+size_t;" /usr/include/ 2> /dev/null

會給你定義爲size_t