預處理部分

預處理部分

                                                                                       黑色印記
    1.什麼是幻數?
     點開以下鏈接。點擊打開鏈接    
  
    2.宏函數與自定義函數的區別?
    主要有三點不同。
    (1)編譯階段不同:宏函數在與處理階段,而自定義函數在編譯階段。
    (2)執行速度不同:宏函數省去了調用尋址和返回的過程,因而宏函數的執行效率較高。
    (3)宏函數不佔用內存,自定義函數佔用內存。

    3.舉例時間換空間,空間換時間的例子?
    用編譯時間換內存空間的例子是宏函數的定義。因爲在預處理階段,將宏函數替換,增加了編譯時間,但是宏函數不佔用內存。
    用內存空間換執行時間的例子是內聯函數。省去了函數的調用尋址和返回的時間,但增加了代碼量。

    4.如何防止頭文件重複編譯?
    利用條件編譯即可。#ifndef     #define     #endif     。他還可以防止變量宏,或結構體的重複定義。
    使用方式,比如,你要包含一個FUNCA_H的頭文件。
#ifndef   FUNCA_H
#define  FUNA_H 

...內容...

#endif

    5.有哪些常見的內置宏?
    常見的內置宏有以下幾種。
    符號                      樣例值                     含義
    _FILE_                  "name.c"                  進行編譯的源文件名                
    _LINE_                  25                            文件當前的行號
    _DATE_                 "jan 31 1997"           文件被編譯的日期
    _TIME_                  "18:04:30"                文件被編譯的時間
    _STDC_                 1                             如果編譯器遵循ANSI C,其值就爲1,否則未定義。
  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章