1
我有一個程序使用參數數據(車輛數據,如傳輸速率,重量等)的常數結構。C - 設置返回變量爲const
由於該程序將用於不同的車型,我想通過調用一個函數來讀取txt文件中的參數數據,該函數將結構作爲返回值進行反饋。
是否有可能在我的主程序中聲明結構爲'const'?我想這樣做是爲了保證這些結構在進展中不會發生變化。
更多信息:在代碼的基礎應用中,參數數據是硬編碼的。因此現在使用常量結構。
我有一個程序使用參數數據(車輛數據,如傳輸速率,重量等)的常數結構。C - 設置返回變量爲const
由於該程序將用於不同的車型,我想通過調用一個函數來讀取txt文件中的參數數據,該函數將結構作爲返回值進行反饋。
是否有可能在我的主程序中聲明結構爲'const'?我想這樣做是爲了保證這些結構在進展中不會發生變化。
更多信息:在代碼的基礎應用中,參數數據是硬編碼的。因此現在使用常量結構。
是的,你可以用一個函數的返回值來初始化一個const。但是你不能把返回值賦給一個const。
例子:
#include <stdio.h>
int foo()
{
return 42;
}
int main(void) {
const int g = foo(); // OK for initializing a const
printf("%d\n", g);
// g = foo();; <-- will cause compile error : assignment of read-only variable ‘g’
return 0;
}
是的,它是可能的。你可以將它們定義爲'const',並用分析該文件的函數的返回值對它們進行初始化。在優化額外的副本時應該省略。 – StoryTeller
@StoryTeller在C?你確定? C'const'的限制性很強,因爲它只允許在其初始化表達式中使用常量表達式和字符串常量,所以我認爲這不會起作用。在C++中是的,但在C中沒有。 – Downvoter
感謝您的及時答覆! 那麼,如果沒有,是否有另一種方法可以保證對結構沒有改變? –