作者snobbery (egoist)
看板C_and_CPP
標題Re: [問題] select()用到的timeval
時間Tue Oct 5 11:21:34 2010
感謝上篇推文中的回答, 的確用推文的方找到了,
不過我有另外的問題, 假設我有程式如下:
#include <sys/time.h>
void main(int argc, char* argv[])
{
struct timeval AAA;
}
用gcc -E來編輯並輸出至另外檔案之後,
可以發現 #include <sys/time.h>被換成很多奇奇怪怪的程式碼.
就我本來的認知, 就是把sys/time.h內的程式(或是說, 宣告)貼上去而已,
但是仔細一看發現其實gcc -E輸出的東西與直接跑進去看sys/time.h的程式碼不一樣,
看來好像是我的觀念錯誤了, 請問這是要怎麼解釋呢?
: 我用的是ubuntu 10.04,
: 現在正在學習socket programming裡面的select().
: 有個struct叫做timeval, 我看資料他定義在sys/time.h裡面,
: 但是我有找到time.h, 卻沒看到timeval的定義, 不知道有人可以告訴我一下嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 146.115.81.149
推 purpose:假設說1.h有一段內容,位於 #ifndef ptt_cpp 跟 #endif 間 10/05 11:34
→ purpose:你有include此標頭檔,會先貼上,接著做前置處理,發現有 10/05 11:35
→ purpose:#ifndef 這類指令,就要先運行,所以視 ptt_cpp 有無被定 10/05 11:35
→ purpose:義,會影響最後 gcc -E 產生出來的內容。 10/05 11:36
→ manlike:想太多 = = 10/05 12:00
推 LPH66:簡單說就是你忘了考慮 preprocessor directive 10/05 13:51