2012-12-21 178 views
0
struct proc_time /* info and times about a single process*/ 
{ 
    pid_t pid; /* pid of the process*/ 
    char name[16]; /* file name of the program executed*/ 
    unsigned long start_time; /* start time of the process*/ 
    unsigned long real_time; /* real time of the process execution*/ 
    unsigned long user_time; /* user time of the process*/ 
    unsigned long sys_time; /* system time of the process*/ 
}; 

struct proctimes /* info and times about all processes we need*/ 
{ 
    struct proc_time proc; /* process with given pid or current process */ 
    struct proc_time parent_proc; /* parent process*/ 
    struct proc_time oldest_child_proc; /* oldest child process*/ 
    struct proc_time oldest_sibling_proc; /* oldest sibling process*/ 
}; 

之前,我不明白什麼是我的聲明去錯了,我收到以下錯誤在該行的第二struct開始:錯誤:預期「;」,標識符或「(」「結構」

​​
+1

你能發佈在此之前的代碼嗎? – Blender

回答

3

問題是你正在使用/.../作爲註釋分隔符這是違法的行:

struct proc_time proc; /process with given pid or current process/ 

應改爲:

struct proc_time proc; /* process with given pid or current process */ 
+0

是的,它甚至在語法高亮顯示中可見。 –

+0

或'struct proc_time proc; //用給定的pid或當前進程處理' – Trisped

+0

感謝您的答案。我的代碼中包含/ * * /。在輸入問題時只是忘記了它。評論沒有問題。 – SpyrosR

0

有沒有真正的理由,如果你在文件範圍聲明這些結構(假設你固定您的評論的問題)會發生這種情況。

然而,如果你總算來聲明一個更大的結構中,這些結構,那麼你確實會從C編譯器得到一個錯誤

​​

在C語言中是違法的「嵌套聲明結構類型「沒有立即聲明該類型的數據字段的時尚。

+0

或在發佈的代碼示例之前定義的其他內容。 –

0

在分號前和結束大括號之後添加struct aliases,允許我編譯結構(在添加main方法幷包含stdlib.h後使用gcc)。

struct proc_time /* info and times about a single process*/ 
{ 
    pid_t pid; /* pid of the process*/ 
    char name[16]; /* file name of the program executed*/ 
    unsigned long start_time; /* start time of the process*/ 
    unsigned long real_time; /* real time of the process execution*/ 
    unsigned long user_time; /* user time of the process*/ 
    unsigned long sys_time; /* system time of the process*/ 
} proc_time; 

struct proctimes /* info and times about all processes we need*/ 
{ 
    struct proc_time proc; /* process with given pid or current process */ 
    struct proc_time parent_proc; /* parent process*/ 
    struct proc_time oldest_child_proc; /* oldest child process*/ 
    struct proc_time oldest_sibling_proc; /* oldest sibling process*/ 
} proctimes;