C 有没有办法调用void并返回同一行?

C 有没有办法调用void并返回同一行?,c,void,C,Void,我正在做一个项目,具体目标是尽量减少代码的行数,我想知道各位大师是否对此有所了解 我有一个函数必须返回一个void*,它的最后一行调用一个void函数,然后返回0,如下所示: void void_function(){ //foo } void* my_function(){ ... void_function(); return 0; } 是否有一些狡猾的方法调用void\u函数并在同一行中返回0(或任何其他值)?我尝试过的每件事都会抛出错误,因为C似乎真的不希望我弄乱vo

我正在做一个项目,具体目标是尽量减少代码的行数,我想知道各位大师是否对此有所了解

我有一个函数必须返回一个void*,它的最后一行调用一个void函数,然后返回0,如下所示:

void void_function(){
  //foo
}

void* my_function(){
  ...
  void_function();
  return 0;
}
是否有一些狡猾的方法调用
void\u函数
并在同一行中返回0(或任何其他值)?我尝试过的每件事都会抛出错误,因为C似乎真的不希望我弄乱void函数

编辑: 为了澄清,这里的目标是最少的行总数,其中一行定义为分号。显然这不是生产代码,只是为了好玩

那么,您可以始终(ab)使用预处理器宏:

#define CALL_AND_RETURN(x) {x; return 0;}

[...]

CALL_AND_RETURN(void_function());

不过,我认为这不是一个好主意,因为它不会给您带来太多好处,而且会使您的代码更难让其他人理解。

始终存在逗号运算符,尽管它不会使代码更具可读性

return void_function(), 0;

创建一个调用void_函数()并返回0的lambda,然后从my_函数()返回调用的lambda。

对不起,我没有得到你想要做的是减少你的行数或理解空洞*函数的作用。为什么当你问C时为什么要加C++?抱歉,我不明白你为什么会想要这样的东西。您可以只使用-O3,让编译器做它需要做的任何事情。我看不到任何好处。你想要更少的行还是更少的代码?为什么要降低应用程序的可读性?如果您愿意,可以将整个程序缩短为一行。这将很难阅读。但如果这是你想要的…我想你只是把线移到上面,而不是减少它。如果有多个这样的电话,那会很有帮助;我假设提问者的实际代码有多个这样的函数(否则他为什么会关心最小化代码长度呢?),并且为了简洁起见,他只列出了一个。我不认为这减少了任何东西。它可以被认为是用逗号代替分号。在同一行中始终可以有多个表达式。这里没什么收获。你能详细说明一下吗?好像一个评论没有lambda。这个帖子被标记为C++当我的帖子被制作出来。随后对其进行了编辑。谢谢