调用函数有哪些不同的方法?例如,我可以在没有()?
的情况下调用函数答案 0 :(得分:5)
您可以按姓名致电:
function_name(args);
您可以通过函数指针调用:
void (*function_pointer)(int, char *) = ...;
(*function_pointer)(3, "moo"); // classic function pointer syntax
function_pointer(3, "moo"); // alternate syntax which obscures that it's using a function pointer
不,如果不使用()
,则无法调用函数。您可以使用宏来隐藏()
,但这只是隐藏它们的位置;最后,您必须在某处使用()
。
答案 1 :(得分:4)
您可以使用宏:
#define f func()
但这不是推荐的方法。您的代码将很难阅读和理解。
答案 2 :(得分:3)
在C中,()
是函数调用语法。没有它你就无法调用它。
答案 3 :(得分:1)
有几种迂腐的方法可以在不使用()的情况下调用函数。命名函数“main”(使用正确的参数和返回类型)是一种好方法。您可以将其注册为中断处理程序。你可以通过粉碎堆栈来欺骗编译器(不可移植,不推荐,在64位x86上使用gcc):
#include <stdio.h>
void foo()
{
printf("In foo\n");
}
void bar()
{
long long a;
long long *b = &a;
void (*fooptr)() = &foo;
b[2] = (long long)fooptr;
}
int main()
{
bar();
}