編譯器個數
1. C++如何讓編譯器判斷輸入數的個數
容易懂的方法就是輸入的時候定義一個值為結束符和定義一個記數的變數a=0,如果定義"0"為結束符的話,輸入的值先判斷是否為結束符,然後不是結束符則a++,如果是結束符則跳出循環,這樣的話此時的a值就為輸入的值了```
2. 怎麼告訴編譯器我要輸入n個數
int n;
cin>>n;
for(int i=0;i<n;i++){
int x=0;
cin>>x;
}
3. C 編譯器對數組是如何處理的
在編譯時,變數分成兩種形式存放,一種叫初始化段,一種叫未初始化段
如果你定義數組沒有給出賦值語句中的初始值,該數組將保存在未初始化段;否則放入初始化段
編譯器將記錄初始化段中的數組起始地址、數據類型、元素個數,初始化數據在常量區的起始地址,數據個數
在程序運行時,系統先申請各段內存,然後針對初始化段進行初始化工作,方法是從常量段中取出初始化數據給你有初始值的變數賦值,假設你程序開設10個單元的數組,如果沒有優化選項,常量段中將保存10個0用來初始化這個數組,如果有優化選項,可以合並相同常量,則僅保存一個0,並用這個0來初始化所有10個數組元素。
4. 同樣的變數類型,在不同的編譯器中占的位元組數有的為什麼不一樣,有的為什麼又一樣
這很正常,每個編譯器有自己的規定嘛,而且這和電腦也有關系,比如16位,32位機,64位都是可能不同的。在國外的c語言書《The C Programming Language 》《 C primer plus》
上有介紹 大概了解一下就行了。另外你可以自己在裡面寫程序測試你的使用環境里的是幾個位元組
5. 常見的C語言編譯器是什麼
目前最流行的C語言編譯器有以下幾種:
1、GNU Compiler Collection 或稱GCC
GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。
GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。
2、Microsoft C 或稱 MS C
Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......
3、Borland Turbo C 或稱 Turbo C
Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。
(5)編譯器個數擴展閱讀:
C編譯的整個過程很復雜,大致可以分為以下四個階段:
1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
3、匯編階段將匯編語言翻譯成機器指令。
4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
6. 每個編譯器都不一樣么 c語言一般用什麼編譯器 每次一種編譯器不能編譯 另一種卻能編譯出
編譯器就是c語言編譯成二進制的東西,
不同的編譯器是不同的,
比如16位系統和32位系統的編譯器就不同,因為16位的認為int是2位元組,32位的則認為是4個位元組。
另外
linux上的編譯器跟windows下的編譯器也不同,linux上的認為內核空間佔1G,而windows下則認為佔2G,
此外兩個系統對環境變數以及其他的設置也不同所以編譯器更不能用。
而且不同的CPU的指令集時不同的,所以同樣int
a
=1
最後被編譯成的二進制代碼也是不同的。
C語言的編譯器有很多,windows下的編譯器也有很多,不同的編譯器可能會做一些不同的優化,linux下的gcc也可以添加選項讓他編譯windows下運行的程序。
main(int
argc,char*argv[
】
)
argc
是你的參數個數
argv是你的參數。
比如你最終程序叫
add
那麼
你在命令行執行add
1
2
那麼argc
=3
第一個參數使你的add,
第二個第三個就是
1
2,
在函數內部你就可以獲取這倆參數進行相加然後列印
visual
是個IDE,集成開發環境,已經集成好了windows下使用的編譯器連接器
等,
編寫代碼完成後直接點擊編譯就行了。
IDE的默認編譯器是可以更改的,不同的IDE設置不同。
7. 編譯器怎麼編譯整數類型的呢
編譯器是以整型存儲整數的,C語言中atoi,_ttoi等函數就可以實現字元串數值到整形數值的轉換,自己可以按照以下演算法實現:
BYTE HexChar2Number(char c)
{
if('0' <= c && c <= '9')
{
return (BYTE)(c - '0');
}
if('A' <= c && c <= 'F')
{
return (BYTE)(c - 'A' + 10);
}
if('a' <= c && c <= 'f')
{
return (BYTE)(c - 'a' + 10);
}
printf("error char: %c\n", c);
return 0;
}
逐字元識別,識別多位數時自己乘以進制權值。
8. linux 交叉編譯器 有哪些
編譯選項個數
內核的編譯選項的個數非常多, v2.6.38的內核中就有 12 000 個左右的設置選項(這是包含所有arch的配置選項).
內核編譯選項不僅多, 有些編譯選項之間還存在依賴關系, 所以手動設置編譯選項幾乎是不可能的.
值得慶幸的是, 只要知道自己需要設置的那些選項, 就可以使用 make ***config 來進行設置, 它還會自動處理依賴關系.
配置編譯選項:
設置內核編譯選項是通過 kconfig 這個工具來完成的.
kconfig 的源碼就是內核代碼中 script/kconfig 目錄下
各個編譯選項的選擇有3種方式:
編譯方法:
make menuconfig :: 源碼根目錄下生成 .config (沒有會自動生成), .config中就是各個內核編譯選項的選擇狀況.
make defconfig :: 根據當前系統的架構默認 .config 生成內核源碼目錄下的 .config (每個架構的配置文件: ex. arch/x86/configs/x86_64_defconfig)
make oldconfig :: 將已有的 .config 放到源碼根目錄下後執行, 目的是為了復用之前的內核編譯選項的配置.
make xconfig :: 圖形化配置, 需要qt3, 個人覺得沒有必要, 有 make menuconfig 就足夠了.
make localmodconfig :: 生成以正在使用的內核模塊為對象的 .config
=y :: 直接編譯到內核中
=m :: 以模塊方式編譯到內核中
不設置 :: 不編譯
9. 為什麼不同的c編譯器中int類型的數佔用位元組不同
不管什麼類型,編譯型語言都會把源碼編譯成機器碼,由於不同平台寄存器位寬不一樣, 所以有了自己對int的規定, 導致int 這個數據類型比較特殊,具體分配的位元組數與機器字長和編譯器有關。但一般等於機器寄存器位寬(64位平台除外,默認為4位元組),如在32位平台上(所謂32位平台是指通用寄存器的數據寬度是32)編寫代碼,int 類型分配4個位元組,而在16位平台是則分配2個位元組。
編譯器是把代碼轉換為機器碼的軟體,如果他願意,可以把int轉換為256位的,只不過會增加機器的復雜度,降低可移植性。
10. 使用vim編譯器打開四個文本文檔統計單詞個數
可以的。
vim編輯器是Linux系統下標準的編輯器,它是我們使用Linux系統不能缺少的工具。Linux系統的任何版本,vim編輯器是完全相同的,學會它之後,就可以在Linux的世界裡暢行無阻。vim編輯器有是那種模式,分別為命令模式、插入模式和末行模式。