C语言之编译器引出的问题基本解释 本节主要探讨C编译器下面两方面的特点所引发的一系列常见的编程问题。 对C文件进行分别编译:C程序通常由几个小程序(.c文件)组成,编译器将这几个小程序分别编译,然后通过链接程序将它们组合在一起形成一个目标代码。由于编译器每次只能编译一个文件,因此它不能立即检查需要几个源文件配合才能发现的错误。 对函数的参数和返回值建立临时变量C编译器会对函数的参数建立临时参数,也可能会对函数的返回值隐含传递一个指针。因为这些临时变量的隐含性存在,使得在某些情况下,特别是有指针存在的时候,会引发一系列的问题。 C文件中所包含的头文件会和C语言一同编译C语言中被包含的头文件是和.c文件一起编译的,头文件中的问题会反映到.c文件的编译中。 问题:C文件的分别编译我有一个数组a定义在f1.c中,但是我想在f2.c中计算它的元素个数,用sizeof可以达到这个目的吗? 答案与分析:答案是否定的,你没有办法达到目的,本质原因是sizeof操作符只是在“编译时(compile time)