【问题标题】:Where to write the definition? [duplicate]在哪里写定义? [复制]
【发布时间】:2015-04-24 10:45:26
【问题描述】:

许多人告诉我,在 C 中,定义必须在 main() 块开始之后,而不是在使用之前定义。您还可以计算函数,因为函数定义与同一主题相关。 在 stackoverflow 和 web 上进行一些搜索后,我找不到我的问题的答案,或者我只是找不到要搜索的关键字。

int main(){ //defining at the beginning of main
int x=0;
.
.
.
function(x);
return 0;
}

int main(){ //defining right before using
.
.
.
int x=0;
function(x);
return 0;
}

【问题讨论】:

  • function(x); 这里不是函数定义,是函数调用。对于您的问题,前者优先符合旧标准。大括号之间可能有新变量:int main(){ int x=5; do_sth(); if(x) { int y; } }。编辑:啊,对不起。但符合旧标准的此评论部分仍然有效。
  • 我实际上的意思是在定义函数时相同的过程是有效的。 function(x); 只是为了表明我使用了该变量。

标签: c initialization declaration definition


【解决方案1】:

在语句/函数主体内的任何地方声明/定义变量都很好。

在名为“C90”的旧版 C 标准中,您不得不总是在块的开头声明/定义变量。但是,这个限制在很久以前就被取消了。

虽然在块顶部的同一位置声明/定义所有变量可能仍然很方便,以便您在阅读代码时可以轻松找到它们。

在块顶部或在使用它之前声明变量之间没有性能差异。无论哪种情况,编译器都会生成相同的机器码。

【讨论】:

    【解决方案2】:

    您可以在程序中的任何位置声明变量,但始终应在使用变量之前声明。

    更好的选择是在函数的开头将所有变量一起声明为代码的improves readability

    【讨论】:

      猜你喜欢
      • 2017-11-25
      • 2018-02-15
      • 1970-01-01
      • 2012-10-13
      • 2016-09-13
      • 2023-04-02
      • 2020-12-16
      • 2013-08-09
      • 1970-01-01
      相关资源
      最近更新 更多