我已經儘量減少我的代碼,以便重現此錯誤。我有我認爲是完美的if語句,但gcc堅持認爲這不是一個有效的陳述。如果語句看起來可以接受,但有錯誤:''''標記之前的預期表達式
#define SOMECHAR *
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char* my_string = (char*) malloc(sizeof(char[5]));
strcpy(my_string, "aa*a");
int i;
for (i=0; i< sizeof(my_string); i++){
if(strcmp(&my_string[i], SOMECHAR) == 0){
printf("%s", "b");
} else {
printf("%s", &my_string[i]);
}
}
}
'的sizeof(my_string)'是一個指針 – Danh
'的#define SOMECHAR *的大小'應該是'的#define SOMECHAR '*''' – Ari0nhh
的#define SOMECHAR *'應該是'的#define SOMECHAR 「*」'反正比較邏輯應該是'my_string [i] =='*'' – Danh