time_t st_mtime行的语法错误?

时间:2012-01-03 14:37:19

标签: c

为什么在Ubuntu中构建时,该程序会产生语法错误?

#include "stdio.h"  
#include "stdlib.h"     
#include "string.h"    
#include "time.h"  
#include "sys/types.h"  
#include "sys/stat.h"

int main()
{
    time_t st_mtime;  
    printf("Hello\n");  
    return 0;  
}  

以下是我尝试构建此内容时获得的内容:

$ gcc -o test1 test1.c  
test1.c: In function ?main?:
test1.c:10: error: expected ?=?, ?,?, ?;?, ?asm? or ?__attribute__? before ?.? token  
test1.c:10: error: expected expression before ?.? token  

检查预处理器输出:

$  gcc -E test1.c > test1.d  

将第10行显示为:

time_t st_mtim.tv_sec; 

只有当我同时包含“sys / stat.h”和& “time.h”文件。

1 个答案:

答案 0 :(得分:5)

如果您grep /usr/include st_mtime,则可以找到以下内容:

$ grep -r st_mtime /usr/include | grep define
/usr/include/x86_64-linux-gnu/bits/stat.h:# define st_mtime st_mtim.tv_sec

因此问题源于您使用变量名st_mtime