編譯時間宏
A. 宏替換只是字元替換,不佔用編譯時間是不是正確
宏是在預編譯期間進行的,將代碼中的指定字元轉換
轉換結束後,再進行編譯
所以不佔用編譯時間
B. 關於c語言中內置宏__DATE__和 __TIME__
這兩個就是字元串常量,當字元串用就行。
__DATE__:當前的編譯日期
__TIME__:當前編譯時間;
#include<stdio.h>
#include<string.h>
intmain()
{
printf("%s,%s
",__DATE__,__TIME__);
printf("長度DATE=%d,TIME=%d
",strlen(__DATE__),strlen(__TIME__));
return0;
}
C. 什麼是編譯時間
用戶使用編譯程序對其個人編制的源程序進行編譯的過程稱為程序編譯。編譯時間(compiling time) 指編譯程序將源程序編譯成目標程序所佔用的時間。
1 如何減少編譯時間
一是執行每日自動構建。每日自動構建的原理很簡單:安裝每日構建工具CCNET(不熟悉該工具的同學可以去搜索下)。然後在源碼伺服器上安裝編譯環境。源碼伺服器每天獲取最新代碼,每天下班後開始編譯最新代碼,經過一個晚上基本上就能把庫和應用程序都編好,到了第二天開發人員只需下載最新的庫文件和代碼文件而不須自己重新編譯。這樣就能大大節省時間了。
二是使用聯合編譯器IncrediBuild。這個工具估計大家都不陌生。最近試驗了一個新想法,寫一個批處理文件,將SVN和IncrediBuild綁在一起,實現了從源碼更新到工程編譯。
2 批處理文件的命令語法
svnupinclude//更新伺服器的include文件夾到本地
BuildConsoleD:\Code\MySolution.sln/prj="MyApp"/build/OpenMonitor/cfg="Debug|Win32"
BuildConsole是IncrediBuild的命令行工具,
D:\Code\MySolution.sln是你的解決方案文件絕對路徑,
/prj參數設置你要編譯的工程,如果你要編譯多個工程,可以這樣設置,/prj="prj1,prj2,prj3",
/prj參數也支持通配符,/prj="*"即為編譯MySolution.sln下的所有工程
/build為編譯工程,若改為/rebuild即是清理重編工程。
/OpenMonitor為打開IncrediBuild的圖形化界面,去掉該參數則不出現圖形界面。
/cfg為編譯設置選項,如要編release版本,可以改為Release|Win32。
把上面的代碼保存為BuildDebug.bat,把文件保存在D:\Code\路徑下(即源碼根目錄,下面有include、src和vs三個文件夾),然後運行這個批處理文件就相當於把從更新源碼到編譯源碼這一系列動作都執行了。
D. 編譯時間是不是就是使用的時間
若使用的是vivo手機,編譯時間是手機系統軟體版本編譯完成的時間,新手機的系統編譯時間通常會早於手機出廠和購買時間的。
E. MDK里如何把編譯時間嵌到代碼里
確實是__DATE__ 和 __TIME__ 宏來實現參考範例:
unsigned char code DataStr[]=__DATE__;
unsigned char code TimeStr[]=__TIME__;
這樣,編譯後TimeStr的字元 ...
F. c語言,說宏展開是在編譯時進行的,啥意思啥叫編譯時進行的
c語言編寫出來的代碼叫源代碼,是供人看的,如果想讓機器執行,需要轉換成機器語言,這個轉換過程就叫編譯。
在c語言中定義的宏,在編譯時,會展開(或叫替換)為實際的語句,如:
#define MAX 100
void main()
{
int a=MAX ;
printf("a=%d\n", a );
}
這里MAX是個宏,當編譯時,這段代碼就會變成:
void main()
{
int a=100; //這里的MAX會變成100
printf("a=%d\n", a );
}
這就是宏展開、宏替換,然後編譯器,按這樣子的源代碼進行編譯,生成執行程序
G. 在下列有關宏替換的敘述中,正確的說法是 A)宏替換佔用運行時間
宏名用大寫字母表示只是個習慣,大小寫都行;
宏替換不佔用運行時間,只佔編譯時間;因為宏替換發生在編譯預處理階段,預處理也是編譯工作的一部分。
宏名無類型;
宏替換只是字元替換;
帶參數的宏替換和函數不等價;
所以答案選D。
H. C語言:#define N 5 不佔用運行時間,那麼佔用編譯時間嗎
是滴。宏定義不佔運行時間,但佔用編譯時間。
宏是簡單的文本替換,函數調用有開銷的。 編譯鏈接後才能運行!
I. 譚浩強的書上說宏替換不佔運行時間,只佔編譯時間,可宏替換不是在預處理時就解決了么不會佔用編譯時間吧
不佔用
程序從源碼到可執行文件,主要包括以下幾個過程:預處理器進行預處理(預處理器),接著有時候可能進行預編譯,接著是編譯(編譯器),接著是連接(連接器)(產生可執行文件)。不過現在的好多集成平台都把前面三步放到一起了。
J. C語言中宏替換占不佔用運行時間
1.
宏替換不佔用運行時間。宏替換是在編譯時,編譯器完成的。佔用編譯時間。
2.
編譯時,編譯器會將代碼中的宏用對應定義好的代碼進行直接替換,然後再對源代碼進行編譯。
3.
所以宏比函數在運行時更快,因為它不用像函數調用時,要對現有數據進行入棧保存,運行完後,在出棧恢復;它是直接編譯好的代碼。