我们可以看到在stdint.h或bits / types.h等中定义的宏,它是__WORDSIZE。我不知道在哪里检查是否定义了这个宏。另外,有没有办法在不使用c中的sizeof的情况下检查不同大小的基本类型。我的意思是,是否有文件显示这些变量的大小?
答案 0 :(得分:1)
嗯,这取决于平台。首先,如果使用UNIX,则有一些要求由C标准和/或POSIX标准设置。 sizeof(int) <= sizeof(long)
或sizeof(char) == 1
然后ABI有最终决定权。例如,在x86_64上的linux / freebsd / solaris上,他们使用一个共同的ABI:http://people.freebsd.org/~obrien/amd64-elf-abi.pdf
本文档中的<3.1> 3.1.2具有此ABI所有类型的大小