2014-11-03 35 views
0
void replace_color( uint8_t array[], 
      unsigned int cols, 
      unsigned int rows, 
      uint8_t pre_color, 
      uint8_t post_color) 
{ 
    for (int x = 0; x<(cols*rows); x++) 
    { 
     if (array[x] == pre_color) 
     { 
      pre_color == post_color; 
     } 
    } 
    return post_color; 
} 

我創建了一個函數來將pre_color的每個像素都替換爲post_color。我只是想知道,這個功能接近於正確嗎?函數用post_color替換pre_color使用c

+0

'pre_color == post_color;'完成任何事情。你的編譯器應該生成一個告訴你這個警告。 – 2014-11-03 21:08:12

+0

有趣的是,我的編譯器沒有給我任何警告。它只是編譯,但是當我運行它時,它什麼也沒做。 – user3880587 2014-11-03 21:11:41

+0

您是否激活警告?你正在使用哪種編譯器? – 2014-11-03 21:27:29

回答

1
if (array[x] == pre_color) 
{ 
    pre_color == post_color; 
} 

沒有意義。 pre_color == post_color;不是什麼。

你想:

if (array[x] == pre_color) 
{ 
    array[x] = post_color;   // set the x'th element of array to post_color 
} 

而且,你不能return post_color;在返回void的功能。只要刪除這一行。