2011-03-16 64 views
1

在我的代碼庫上運行CppCheck會產生一些樣式警告。例如。在CppCheck:變量'bla'未分配值

void foo(int& x) 
{ 
    x = 0; 
} 
void bar() 
{ 
    int y; 
    foo(y); 
} 

它給了我

Variable 'y' is not assigned a value 

這與像

char buffer[160]; 
i+=sprintf(buffer,"%2.2ld.",ymd.monthday); 

代碼相同的這是我的代碼有問題或者是與CppCheck一個問題嗎? (如何)我應該修復它?

感謝您的任何想法!

回答

4

這是一個bug在CppCheck和好消息是,它已被修復!

您可以抓取latest code並構建自己的版本或等待v1.48發佈。根據the wiki,版本1.48計劃於4月9日發佈。

1

這是一個CppCheck的問題。你的代碼沒問題(至少是給定的)。

1

您正在使用變量y作爲'out'參數,但CppCheck無法確定該參數。最好在int y = 0;的定義時初始化y,這樣以後如果有人試圖使用foo中的參數x,它們將不會獲得未初始化的值。