簡體   English   中英

如何修復預期標識符錯誤C語言

[英]How to fix Expected Identifiers errors C Language

當我編譯代碼時,我得到兩個“預期的標識符”錯誤 - 盡管它是根據ANSI-C標准編寫的。 我使用gcc編譯器編譯了標志-Wall -ansi -pedantic。 我知道編譯器已經老了但我的大學要求我使用它。

復制粘貼的錯誤:

mycomp.c:202:5: error: expected identifier or ‘(’ before ‘return’
     return SUCCESS;
     ^
mycomp.c:203:1: error: expected identifier or ‘(’ before ‘}’ token
     }
     ^
makefile:10: recipe for target 'mycomp.o' failed

我嘗試檢查我的代碼,但找不到任何語法問題。 我嘗試按照錯誤指南行,對於一個實例,在'return'或'''''''''令牌之前加'('',但這並沒有改變任何東西,我仍然得到那些錯誤。

代碼很長很亂,但我只在最后得到一個錯誤或它:最后一個返回和最后一個數字。

int main() {  
    char command[SIZE_OF_LINE];
    int commandIndex; int i;
    int numbers[2]; char var[2];

    /* As requested, initializing all complex values to 0 + 0i */
    read_comp(A, NONE, 0 ,0);
    read_comp(B, NONE, 0 ,0);
    read_comp(C, NONE, 0 ,0);
    read_comp(D, NONE, 0 ,0);
    read_comp(E, NONE, 0 ,0);
    read_comp(F, NONE, 0 ,0);

    commandIndex = 0;

    numbers[0] = commandIndex;
    numbers[1] = commandIndex;
    var[0] = '0';
    var[1] = '0';

    for(i = 0; ; i = 0)
        if(!fgets(command, SIZE_OF_LINE, stdin)) {
            i = undefinedCharSkipper(command, i);
            commandIndex = commandIdentifier(command, i);

            if(cmd[commandIndex].func == NULL) {
                fprintf(stderr, "Command does not exist:%s\n", command);
            }

            if(strcmp(cmd[commandIndex].name, "read_comp") == 0) {
                /* Recieving parameters and setting in place */
                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[0] = letterReceiver(i);
                }

                i = undefinedCharSkipper(command, i);
                if(numberReceiver(command, i) != FAIL) {
                    numbers[0] = numberReceiver(command, i);
                }

                i = undefinedCharSkipper(command, i);
                if(numberReceiver(command, i) != FAIL) {
                    numbers[1] = numberReceiver(command, i);
                }

                /* Running command */
                read_comp(getComplex(var[0]), NONE, numbers[0], numbers[1]);
                end(command, i);
            }

            if(strcmp(cmd[commandIndex].name, "print_comp") == 0 ) {
                /* Recieving parameters and setting in place */
                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[0] = letterReceiver(i);
                }

                /* Running command */
                print_comp(getComplex(var[0]), NONE, 0, 0);
                end(command, i);
            }

            if(strcmp(cmd[commandIndex].name, "add_comp") == 0 ) {
                /* Recieving parameters and setting in place */
                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[0] = letterReceiver(i);
                }

                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[1] = letterReceiver(i);
                }

                /* Running command */
                add_comp(getComplex(var[0]), getComplex(var[1]), 0, 0);
                end(command, i);
            }

            if(strcmp(cmd[commandIndex].name, "sub_comp") == 0) {
                /* Recieving parameters and setting in place */
                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[0] = letterReceiver(i);
                }

                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[1] = letterReceiver(i);
                }

                /* Running command */
                sub_comp(getComplex(var[0]), getComplex(var[1]), 0, 0);
                end(command, i);
            }

            if(strcmp(cmd[commandIndex].name, "mult_comp_real") == 0) {
                /* Recieving parameters and setting in place */
                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[0] = letterReceiver(i);
                }

                i = undefinedCharSkipper(command, i);
                if(numberReceiver(command, i) != FAIL) {
                    numbers[0] = numberReceiver(command, i);
                }

                /* Running command */
                mult_comp_real(getComplex(var[0]), NONE, numbers[0], 0);
                end(command, i);
            }

            if(strcmp(cmd[commandIndex].name, "mult_comp_img") == 0) {
                /* Recieving parameters and setting in place */
                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[0] = letterReceiver(i);
                }

                i = undefinedCharSkipper(command, i);
                if(numberReceiver(command, i) != FAIL) {
                    numbers[0] = numberReceiver(command, i);
                }

                /* Running command */
                mult_comp_img(getComplex(var[0]), NONE, 0, numbers[0]);
                end(command, i);
            }

            if(strcmp(cmd[commandIndex].name, "mult_comp_comp") == 0) {
                /* Recieving parameters and setting in place */
                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[0] = letterReceiver(i);
                }

                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[1] = letterReceiver(i);
                }

                /* Running command */
                mult_comp_comp(getComplex(var[0]), getComplex(var[1]), 0, 0);
                end(command, i);
            }

            if(strcmp(cmd[commandIndex].name, "abs_comp") == 0) {
                /* Recieving parameters and setting in place */
                i = undefinedCharSkipper(command, i);
                if(letterReceiver(i) != FAIL) {
                    var[0] = letterReceiver(i);
                }

                /* Running command */
                abs_comp(getComplex(var[0]), NONE, 0, 0);
                end(command, i);
            }

            if(strcmp(cmd[commandIndex].name, "stop") == 0) {
                stop(NONE, NONE, 0, 0);
                end(command, i);
            }
        }
        else { /* Failed scanning the user's input */
            printf("\n");
            printf("Scanning had failed");
            printf("\n");
        }
    }
    return SUCCESS;
}

預期的結果:編譯沒有錯誤,因為這是我得到的唯一2個錯誤。 實際結果:獲得2個錯誤。

仔細查看並正確縮進代碼。

在這部分

    }                     //----------------------- (1)
    return SUCCESS;        // -----------------------(2)
}                     

你有一個大括號不匹配。, (1)表示main()函數的右括號,所以標記為(2)的部分; 你的return SUCCESS; } return SUCCESS; }駐留在文件范圍內,這是不允許的。

糾正你的縮進並照顧牙套。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM