首页 > 解决方案 > 包含 stdlib.h 会导致代码无法正确编译

问题描述

当我需要包含 stdlib.h 时,我有一段代码。当我不包含此标头时,编译我的代码没有问题,但是当我包含标头时,我的代码拒绝编译。它告诉我它在数字常量之前需要一个标识符或“(”。我查看了我的代码并没有发现任何问题,并且如前所述,代码在不包含该标头的情况下完美编译。

我是 C 新手,所以请原谅我糟糕的代码,我只是想弄清楚为什么它会给我这个错误。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int execute(char **args)
{

}


char** parse(void)
{
  char command[256];
  fgets(command, sizeof(command), stdin);

  char delimiter[] = " "; 
  char * pointer = strtok(command, delimiter);

  int tokens = 0;
  char ** final_command;

  while (pointer != NULL)
  {
   // final_command = (char**)realloc(final_command,   
      // (tokens+1)*sizeof(char*));
    //printf("%s\n", pointer);

   //pointer = strtok(NULL, delimiter);
  }
}


int main(int argc, char **argv)
{
  int EXIT_SUCCESS = 1;
  do 
  {
    printf("MyShell> ");
    char ** command = parse();
  } while (EXIT_SUCCESS);  

  return EXIT_SUCCESS;
}

我使用命令 gcc -o MyShell MyShell.c 编译我得到的确切错误是“错误:预期的标识符或'('在数字常量 int EXIT_SUCCESS = 1; 之前”

标签: c

解决方案


EXIT_SUCCESS 是 C 中的标准宏(定义)。请勿将其用作变量名。


推荐阅读