int func(void) [5];
Run Code Online (Sandbox Code Playgroud)
为什么上面的行在c中无效?众所周知,函数可以用作变量.但是,我不明白为什么编译器会出错.
为什么我使用该行是因为我试图创建5个函数变量.为此,我写了这样的,如上所示.
这不是合法的C语法,句号.
它在C++中也是无效的,因为函数不能放在数组中(你试图声明一个包含五个函数的数组).但是,以下在C和C++中都有效:
int (*func[5])(); // C++ version
int (*func[5])(void); // C version
Run Code Online (Sandbox Code Playgroud)
并声明一个由五个函数指针组成的数组.
如果您想要一个返回数组的函数,那么在C中就可以了
int *func(void);
Run Code Online (Sandbox Code Playgroud)
在C++中你做到了
int* func();
Run Code Online (Sandbox Code Playgroud)
要么
int (&func())[5];
Run Code Online (Sandbox Code Playgroud)
它返回对五个整数数组的引用.
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |