什麼語句會被正式編譯
❶ C語言習題:根據以下代碼,問哪個語句能被編譯
答案 B
A p->b= ' '; //不能直接訪問結構體內部的聯合體成員
B p->e[3]=10; //可以直接給數據成員賦值,這個是數組成員
C p->d->c=20; //錯誤同A
D p.d.a= '*'; //p是指針,最起碼要用 -> 指針操作符吧
❷ if(false){內部類} 內部類會被編譯嗎什麼時候
除非是條件編譯語句,否則就要編譯。
❸ 哪些屬於編譯型語言
屬於編譯型語言的是: C
屬於解釋型語言的是: php asp jsp
java具有編譯與解釋兩種特性:既可以將其源代碼當作腳本執行,也可以進行編譯成.class代碼(位元組碼)載入運行。
區別在於:
編譯型語言,通常都會對源代碼進行編譯,生成可以執行的二進制代碼,執行的是編譯後的結果。
解釋型語言,通常不用對源代碼進行編譯,一般是通過解釋器載入腳本後運行。由於每個語句都是執行的時候才進行解釋翻譯,這樣解釋性語言每次執行就要翻譯一次,效率相對要低。
至於難度,個人感覺 java 相對要更復雜些。
❹ C++中if、#if與#ifdef、#ifndef彼此的區別
1、意義不同
#開頭的都是預編譯指令,就是在正式編譯之前,編譯器做一些預處理的工作
,所以說#if與#ifdef、#ifndef都是,而if是判斷語句,不是預編譯指令。
2、用法
if是條件語句,在運行的過程中根據條件的值選擇執行不同的語句。
#if是條件編譯語句,在編譯階段執行,如果後面跟的條件成立,就編譯對應的語句。
#ifdef是條件編譯語句,在編譯階段執行,後面跟一個宏的名稱,如果這個宏已經定義了,就編譯對應的語句。
#ifndef是條件編譯語句,在編譯階段執行,後面跟一個宏的名稱,如果這個宏沒有定義,就編譯對應的語句。
(4)什麼語句會被正式編譯擴展閱讀:
C++中if、#if與#ifdef、#ifndef的具體使用方法
一、#ifdef 和 #ifndef 指令 (C/C++)
只要能夠使用 #if,就可以使用 #ifdef 和 #ifndef 指令,在定義 identifier 時,#ifdef identifier 語句與 #if 1 等效,當 identifier 未定義或沒有使用 #undef 指令進行定義時,該語句與 #if 0 等效。
這些指令只檢查使用 #define 定義的標識符是否存在,而不檢查在 C 或 C++ 源代碼中聲明的標識符。
提供這些指令只是為了實現與該語言的早期版本的兼容性。 優先選擇將 defined( identifier ) 常量表達式與 #if 指令一起使用。
#ifndef 指令檢查 #ifdef 所檢查的條件的相反值。 如果尚未定義標識符(或已使用 #undef 移除其定義),則條件為 true(非零)。 否則,條件為 false (0)。
二、#if :
源文件中的每個#if指令必須與表示結束的 #endif指令匹配,任意數量的 #elif指令可以出現在 #if 和 #endif指令之間。
但最多允許一個 #else 指令,且 #else指令(如果有)必須是#endif之前的最後一個指令。
❺ 求匯編語言中的指令語句、偽指令語句和宏指令語句的定義!!!
我們編寫的各種指令,都是寫給「編譯軟體」看的,
要由「編譯軟體」翻譯成計算機可以識別的機器語言,即機器碼。
通俗地講:
就好像召開新聞發布會,主持人用中文講話,由一個翻譯,現場翻譯成英文,講給外國記者聽。
主持人說的中文,大部分都是要翻譯成英文的;少數幾句,是說給翻譯聽的,告訴他如何翻譯。
我們寫的指令,由「編譯軟體」翻譯成機器碼的,稱為指令語句;
有一些是寫給「編譯軟體」看的,不翻譯成機器碼,這樣的就是「偽指令」。
一條條計算機的指令,一般來說,功能都是極為簡單,我們可以把幾條、幾十條指令,編寫成一個「宏指令」,來完成一個比較復雜的任務。
在這樣「一批指令」的前面,要用「偽指令」來命名這個「宏指令」;
在後面,要用一條「偽指令」說明結尾。
以後,這個「宏指令」,就可以當成 正式指令 來使用了。
❻ C語言中宏定義、文件包含、條件編譯都不是C語言的語句嗎
這些都是預處理指令,會在編譯前由預處理器統一處理,正式編譯的時候,編譯器看不到這些內容,編譯器也不知道要怎樣處理它們。
C語言的語句是以分號結尾的,這些一般不以分號結尾,不能算語句。
❼ 請教C語言中if語句和預編譯#if語句的區別以及#if 0的意思
這個是為了編碼的方便,有時候編碼的時候某段代碼需要,就加上個#if 1,如果突然不想要了,就把1改成0。起到了一個注釋的作用而已,就是這樣~
❽ 我們所寫的每條C語句經過編譯最終將轉換成二進制的機器指令 這句話為什麼對
不是每條語句都會被編譯為指令的
最簡單的例子,空語句就不會被編譯