#include <iostream>
int add(int a, int b)
{
std::cout << a+b<<std::endl;
return (a+b);
}
int result1 = add(4, 2);
int main(){
int result = add(1, 2);
return 0;
}
int result1 = add(4, 2); 是在全域的地方去呼叫的函式,并非通過main() 入口函式。
之前隱隱約約記得不可以這樣做,函式的呼叫不可以像普通變數一樣在全域變數區直接用,但是上面的代碼運行無誤。請大家指正。
uj5u.com熱心網友回復:
C++里可以這么寫會在main運行之前初始化所有需要呼叫非常量函式的全域變數
uj5u.com熱心網友回復:
C++可以,C語言會有編譯錯誤。但無論如何,不建議這么寫,代碼維護是一個災難。
uj5u.com熱心網友回復:
不建議這么寫。uj5u.com熱心網友回復:
這種代碼看著就腦袋疼 想打人
uj5u.com熱心網友回復:
您好, 可以大概說一說為什么C不允許這樣做嗎,除了維護起來麻煩,有什么致命危害嗎uj5u.com熱心網友回復:
語法不允許靜態存盤的初始化要用編譯期常量 函式呼叫要到運行期才能確定結果
uj5u.com熱心網友回復:
運行沒有問題,但是不建議這么做,因為全域變數的主要特點就是它的生命周期橫跨整個程式的始終,不便于維護uj5u.com熱心網友回復:
不建議這樣做,,,,uj5u.com熱心網友回復:
我有個問題,如果把int result1 = add(4, 2);寫成add(4,2)就會報錯,這是為什么呢?uj5u.com熱心網友回復:
參見《C++程式設計精要教程》,視屏。全域變數是由開工函式初始化(或構造)的,并由收工函式析構。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/274574.html
標籤:C++ 語言
