Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 返回变量的函数是否仍在不赋值的情况下运行?_C - Fatal编程技术网

C 返回变量的函数是否仍在不赋值的情况下运行?

C 返回变量的函数是否仍在不赋值的情况下运行?,c,C,在这个特定的示例中,代码将是down\u可中断(&semaphore)。down\u interruptable返回一个整数。函数在没有为返回值赋值的情况下是否仍能正常运行,或者缺少赋值是否会导致语句被完全跳过?是,除非它没有任何区别,并且编译器发现可以方便地优化程序并取消函数调用 您可以随意忽略C中的返回值(尽管在某些情况下,例如当返回错误代码时,这被认为是不好的做法),但仍将进行函数调用 一般来说,编译器不允许删除具有明显副作用的代码。(从技术上讲,如果你的函数什么都不做,编译器可能会忽略调

在这个特定的示例中,代码将是
down\u可中断(&semaphore)
。down\u interruptable返回一个整数。函数在没有为返回值赋值的情况下是否仍能正常运行,或者缺少赋值是否会导致语句被完全跳过?

是,除非它没有任何区别,并且编译器发现可以方便地优化程序并取消函数调用

您可以随意忽略C中的返回值(尽管在某些情况下,例如当返回错误代码时,这被认为是不好的做法),但仍将进行函数调用


一般来说,编译器不允许删除具有明显副作用的代码。(从技术上讲,如果你的函数什么都不做,编译器可能会忽略调用)

C编译器不允许优化函数调用,除非它知道它不会产生副作用。把你的代码编译成汇编程序,你就会知道答案;)@divanov这是下一步,但即使我得到了我的答案,我还是想知道更多关于它的信息,比如它是否是一个坏习惯,或者编译器是否被允许优化我从这个简单的问题中学到的函数?谢谢,这就是我需要知道的。