C語言中,C程式的執行也可採用解釋方式麼?那什麼是解釋方式

2025-06-17 07:20:24 字數 3311 閱讀 9600

c語言的翻譯方式是編譯方式還是解釋方式?

1樓:驢友特遣隊

這是一種命名方式,一種縮寫。clearerr=clearerror.因為是檔案操作類函式的所以以f開頭(file).

fopen=fileopenfclose=fileclose這些都是標準庫,常用的就那幾個,多用幾次就熟悉了。建議看下"駝峰命名法","匈牙利命名法"!

2樓:乙個王五三

c語言的翻譯方式是編譯方式。

c語言採用解釋方式將源程式轉換為二進位的目標**嗎?

3樓:smile灬微光丶

不是,c語言採用編譯方式將源程式轉換為二進位的目標**。使用c語言編譯器來完成。

所謂c語言編譯器,就是把程式設計得到的檔案,比如。c,.h的檔案,進行讀取,並對內容進行分析,按照c語言的規則,將其轉換成cpu可以執行的二進位檔案。

其本質在於對檔案的讀入,分析,及處理。

c語言編寫的程式**稱為源程式,對於計算機本身來說,它並不能直接識別由高階語言編寫的程式。c語言程式經c語言編譯程式編譯後,生成字尾為。obj的二進位檔案 (稱為目標檔案)。

此。obj檔案必須與系統提供的各種庫函式連線起來生成乙個字尾為。exe的可執行檔案才可以執行。c語言的可執行檔案由一系列機器指令構成的。

4樓:

不是,c語言是編譯型語言。

c語言是採用預編譯、編譯的方式生成二進位檔案。過程是c檔案先經過預編譯,主要進行預處理,然後經過編譯生成。s檔案,這是彙編檔案,然後生成。

o檔案,這是目標檔案,最後由鏈結器生成可執行二進位檔案。

解釋型語言和編譯型語言的區別是解釋型語言不進行編譯即可執行。通俗講為,編寫好**後不進行語法檢查即可執行,也不依賴硬體環境。

5樓:趙萬東

不是,c語言是「編譯-鏈結」

除錯c程式時,可以採用哪些控制程式的執行方式,請列舉3個以上並解釋

6樓:網友

1. 單步執行,也就是一次執行一行源**;

2. 先設定乙個斷點,然後直接執行程式,程式會在有斷點的那一行**處停下來;

3. 設定乙個條件斷點,然後執行程式,程式會在符號某個條件時停下來,比如某個變數達到了乙個值、或者讀取到了某個記憶體位址時,程式停下來。

c語言源程式的開啟方式

7樓:樂跑小子

譬如:e:\c\ 這是原始檔。

e:\c\e:\d\

c:\a\如果想執行,那麼可以不指定路徑:

#include

int main()

如果想執行,那麼可如下指定路徑:

include

int main()

如果想執行,則必須指定絕對路徑:

#include

int main()

對於空格問題,可按如下方法解決。

#include

int main()

用c語言編寫的源程式是以ascii碼形式存放在字尾為.c的檔案中嗎?求解釋,幫幫忙吧!

8樓:網友

不一定是ascii碼編碼方式 還可以有其他編碼方式。

用c寫的一般都寫在。c檔案中,也有其他的。

9樓:我至少還有嬌

差不多,如果編譯器支援gb2312或者utf,就是說變數如果用中文,那就不能用ascii了。

10樓:空雪夢見

是。另外根據編譯器的不同,有的還支援utf-8碼、utf-16碼、utf-16 big endian碼形式。

c語言中結構體在記憶體中的儲存方式?

11樓:吉祥二進位

結構體在記憶體中的儲存方式,和常規的c語言變數、常量儲存方式類似,唯的不同在於對齊。

只所以要進行資料對齊是因為編譯器對結構的儲存的特殊處理能提高cpu儲存變數的速度,一般來說,32位的cpu記憶體以4位元組對齊,64位的cpu的以8位元組的對齊。一般可以使用#pragma pack()來指出對齊的位元組數。比如下面的**,在debug會顯示結構體test的記憶體大小為28,如果生成release版則所佔記憶體大小為32 。

#include

#ifdef _debug

#pragma pack(4)

struct test

ss;#else

#pragma pack(8)

struct test

ss;#endif

int main(void)

12樓:

分配為記憶體時相鄰記憶體之向要儲存記憶體管理資料結構的資料,不會兩次分配的記憶體位址相連的即使分配的位址是相鄰的記憶體,多次分配記憶體後,通常都不會出現連續分配相鄰位址的現象,分配的記憶體位址當然絕對不會連續了。

13樓:風林焱山

用malloc()申請的函式應該指的是不一定在記憶體的哪乙個地方為你分配了乙個儲蓄資料的空間,但空間裡的內容應該是連續的,不然呼叫時不是很亂嘛!

14樓:傲世修羅王

那要看這個結構體定義在什麼地方,也要看它包含的變數的型別。

15樓:網友

1. p1的10個空間是連續的,p2的20個空間也是連續的,因為malloc分配時就考慮到連續分配的問題。

2. p1,p2之間的位址不一定是連續的。因為p2申請位址時,重新調了malloc()。也就是從隨機的位址開始連續分配20個空間。

3. 注意裡[空間]的意思,因為申請的資料型別不一樣,比如char型,int型。所以每個空間的長度也不一樣。

假如int型佔用2個byte,則位址0x1000的下乙個位址有可能就是0x1002。因為0x1000+0x1001是乙個int型資料。

4. 初學者可不看本條。再深入點,跟據編譯器不同,乙個int型佔2byte還是4byte都有可能。具體情況具體分析。

16樓:帥哥聯盟

malloc本身申請的記憶體是連續的,比如malloc(11),他申請了11個連續的記憶體單元。

你說的「『堆』記憶體不連續」,這句話很籠統,那要看那個『堆』具體是如何實現的。你可是設計乙個連續記憶體的堆,也可以設計連結串列型別的堆。

c中變數的儲存方式,最終是由編譯器決定的,不同的語言,組織方式都不一樣。

想有深入的理解,可以學習彙編,觀察彙編程式最終生成的執行檔案,記憶體使用和組織方式。。。之後,心裡基本就有低了。。這些一句話解釋不清,還有乙個漫長的學習過程。

C語言,我的程式為什麼執行不對,c語言中輸入一個程式後顯示無錯誤,為什麼不能執行

是陣列,本身就是地址,不必用 2 b進位制,每位上的數字最大值是b 1,因此,應該先檢視3個數各位的數字,取最大值 1作為b的最小值.3 注意,base在每次求1個數之前,要重新歸1。你求sum1,sum2,sum3前,都沒有歸1,base累積,越來越大。第一個base 1 應該在for i len...

c語言中的main()函式,C語言中的main()函式

一 定義 main函式,又稱主函式,是程式執行的起點,main是相對來說的,如同音學理論之主調於泛音,泛音即程式中的除main之外的其他函式,迎合人們的思考方式而生成的而非必定的模式.有主有次,執行起來條清縷析,既可將程式模組化又實現了一個閉合的整體。二 main 函式的形式 在最新的 c99 標準...

c語言中SIZEOF的問題,c語言中的 sizeof 問題

我來回答你的問題 sizeof函式的意思是統計變數長度。int的長度長2個位元組 char的長度長1個位元組 float的長度長4個位元組 union uuua的長度取決於其中成員中最長的變數的位元組長度,在這裡為char型別,共五個元素值,長度為5。那麼開始統計總長度也就是2 1 4 5 12 希...