描述
在cpp文件中
#include "stdio.h"
int fun3() { printf("Hello1\n"); return 0;}
int fun4() { printf("Hello2\n"); return 0;}
int array[] = {fun3(), 1, fun4()};
int main() {
return 0;
}
上方代码能编译并执行,结果如下
Hello1
Hello2
在c文件中
如上代码会直接报错,编译通不过
IDE(CLion)中提示
Initializer element is not a compile-time constant ∶8
提问∶
- 为什么在cpp文件中都能打印输出?分明没有在main函数中调用。
- 为什么cpp文件中,所有的函数都发生了调用,而没有只调用第一个函数?
- 为什么在c文件中会报错,而不在cpp文件中报错?
- c文件中的报错,应该怎么理解和处理?
- 如何在数组中正确传入函数作为参数并调用?【通过数组索引调用对应的函数】
- 数组中传入函数作为参数有什么缺点?又可能有哪些应用?