c - 不同 gcc 版本的语法错误?

标签 c gcc syntax-error

我用 C 和 Ubuntu Linux 编写了一个程序,现在我需要将它移植到 UNIX 机器(或者我认为是 UNIX 机器的机器)上。它在我的 Ubuntu 上用 GCC 编译得很好,但是当我尝试在 UNIX 机器上用 GCC 编译它时,它给出了这个错误:

a.c: In function `goUpDir':
a.c:44: parse error before `char'
a.c:45: `newDir' undeclared (first use in this function)
a.c:45: (Each undeclared identifier is reported only once
a.c:45: for each function it appears in.)
a.c: In function `goIntoDir':
a.c:54: parse error before `char'
a.c:57: `newDir' undeclared (first use in this function)
a.c:57: `oldDir' undeclared (first use in this function)

主要问题好像是char之前的解析错误(其他的都是相关的)

44  char newDir[50] = ""; 
54  char* oldDir = (char*)get_current_dir_name();

这些只是简单的 C 风格字符串声明。是否需要包含头文件才能使其在 UNIX 中运行?

附言查看您使用的是哪个版本的unix和哪个版本的gcc的命令是什么?了解这一点将使我的问题更加具体。

谢谢

最佳答案

如果您正在编译纯 C,则必须在函数的开头声明变量。我提到这一点是因为大多数人使用 C++ 编译器编译他们的 C 程序,这提供了一些纯 C 编译器通常不可用的资源,最常见的例子是//注释行。

关于c - 不同 gcc 版本的语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/154902/

相关文章:

c - 什么时候在 C 中使用指向指针的指针来打字双关是合法的?

c - 将文件字符串转换为字符指针

linux - 为 linux 3.2.x 与基于 2.6.x 的系统编译的代码之间存在巨大的时间差异

c++ - using 声明是否应该隐藏继承的虚函数?

windows - C : Correct Way to Statically/Dynamically Link with MinGW-w64

c - 如何在linux中打印进程的pgd和stack_start值?

c - 创建用户输入的多个线程时出现段错误

php - 语法错误: unexpected end of file despite all statements are valid

javascript - 初学者 react : Render Syntax Error

php - 语法错误(语法明显不错)