看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 4.7.2 + MinGW64 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OMP.h 問題(Question): CPPCheck V1.66 會警告可執行且執行成果正確的語法 餵入的資料(Input):預期的正確結果(Expected Output): 不要警告 錯誤結果(Wrong Output): 發出警告 程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdio.h> #include <windows.h> #include<omp.h> int main(void) { int Total=60;//一共要跑幾次 <--CPPCheck 警告 int Count=0;//目前跑了幾次 <--CPPCheck 警告 int Num_threads = 16;//用多少執行緒來跑 <--CPPCheck 警告 #pragma omp parallel num_threads(Num_threads)/開始平行 { #pragma omp for for(int i=0;i<Total;i++){ printf("\n i=%d",i); #pragma omp atomic Count++;//計算完成了幾個 printf("\n己完成 %f%%",(double) Count / Total * 100); } } system("pause"); //暫停功能 return 0; } 補充說明(Supplement): 警告內容: The scope of the variable 'Total' can be reduced. The scope of the variable 'Count' can be reduced. The scope of the variable 'Num_threads' can be reduced. CPPCheck 的例子如下: Warning: Be careful when fixing this message, especially when there are inner loops. Here is an example where cppcheck will write that the scope for 'i' can be reduced: void f(int x) { int i = 0; if (x) { // it's safe to move 'int i = 0;' here for (int n = 0; n < 10; ++n) { // it is possible but not safe to move 'int i = 0;' here do_something(&i); } } } When you see this message it is always safe to reduce the variable scope 1 level. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.245.65.183 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1412838623.A.3F2.html ※ 編輯: wope (60.245.65.183), 10/09/2014 15:11:12
azureblaze: 你知道他是在檢查什麼嗎 10/09 15:43
chosen4040: 開始平行前面少個斜線/有影響嗎? 問一下 10/09 16:41
carylorrk: cppcheck 在 openmp 上不會有問題嗎? 10/09 17:58