c語言defineif
① c語言的#ifdef 和 if defined 的區別
#ifdef 和 #if defined 的區別在於,後者可以組成復雜的預編譯條件,比如
#if defined (AAA) && defined (BBB)
xxxxxxxxx
#endif
#if defined (AAA) || VERSION > 12
xxxxxxxxx
#endif
而#ifdef 就不能用上面的用法,也就是說,當你要判斷單個宏是否定義時
#ifdef 和 #if defined 效果是一樣的,但是當你要判斷復雜的條件時,只能用 #if defined
② C語言中#if 、#if defined 是不是一樣的呢
#if 條件語句
程序段1 //如果條件語句成立,那麼就編譯程序段1
#endif
程序段2//如果條件不語句成立,那麼就編譯程序段2
#ifndef x//先測試x是否被宏定義過
#define 程序段1 //如果x沒有被宏定義過,那麼就編譯程序段1
#endif
程序段2 //如果x已經定義過了則編譯程序段2的語句,「忽視」程序段1。
#ifdef x //先測試x是否被宏定義過
程序段1 //如果x被宏定義過,那麼就編譯程序段1
#endif
程序段2 //如果x沒有被定義過則編譯程序段2的語句,「忽視」程序段1。
③ c語言define用法是什麼
1、簡單的define定義#define MAXTIME 1000
一個簡單的MAXTIME就定義好了,它代表1000,如果在程序裡面寫if(i<MAXTIME){.........}
編譯器在處理這個代碼之前會對MAXTIME進行處理替換為1000。
這樣的定義看起來類似於普通的常量定義CONST,但也有著不同,因為define的定義更像是簡單的文本替換,而不是作為一個量來使用,這個問題在下面反映的尤為突出。
2、define的「函數定義」
define可以像函數那樣接受一些參數,#define max(x,y) (x)>(y)?(x):(y);
這個定義就將返回兩個數中較大的那個,看到了嗎?因為這個「函數」沒有類型檢查,就好像一個函數模板似的,當然,它絕對沒有模板那麼安全就是了。可以作為一個簡單的模板來使用而已。
C語言中無參宏定義的一般形式:
#define 宏名 字元串,其中的「#」表示這是一條預處理命令。凡是以「#」開頭的均為預處理命令。「define」為宏定義命令。「標識符」為所定義的宏名。「字元串」可以是常數、表達式、格式串等。
例如:#define M (a+b)它的作用是指定標識符M來代替表達式(a+b)。在編寫源程序時,所有的(a+b)都可由M代替,而對源程序作編譯時,將先由預處理程序進行宏代換,即用(a+b)表達式去置換所有的宏名M,然後再進行編譯。
④ c語言的宏定義 if defined
說的簡單一點就是一個判斷語句,判斷#if defined(#ifndef)後面的語句是否有(沒有)被宏定義過,如果條件為真就執行其間的語句,否則就不管它。
⑤ C語言中的條件編譯 #if define(宏名稱)為什麼錯誤了
預編譯指令格式錯誤。
#if define (IBMPC)應改為#ifdef IBMPC
這種結構是為了防止頭文件嵌套包含。一般的用法是
#ifndef _IBMPC_H
#define _IBMPC_H
#include"ibmpc.h"
....
#endif
⑥ c語言中#if defined是什麼含義 怎麼用
這些都是給編譯器的預處理命令。(又叫宏)。
#if !defined -- 預處理命令條件語句開始,如果尚未聲明(定義)什麼頭文件或變數名
#define -- 則聲明(定義)這個頭文件或變數名
#endif -- 預處理命令條件語句結束符
AFX_ICD_H__ED7170FE。。。-- 這是Afx頭文件文件名, MFC的。
另外,站長團上有產品團購,便宜有保證
⑦ C語言中可不可以對define進行條件選擇
可以使用條件編譯:
#if a==1
#define LETTER 1
#else
#define LETTER 2
#endif
注意,a也必須是一個符號常量才可行!
⑧ c語言中IF的用法!!!急求!!!
1.if語句的一般格式
if(表達式)
{語句組1;}
[else
{語句組2;} ]
(1)if語句中的「表達式」必須用「(」和「)」括起來。
(2)else子句(可選)是if語句的一部分,必須與if配對使用,不能單獨使用。
(3)當if和else下面的語句組,僅由一條語句構成時,也可不使用復合語句形式(即去掉花括弧)。
2.if語句的執行過程
(1)預設else子句時
當「表達式」的值不等於0(即判定為「邏輯真」)時,則執行語句組1,否則直接轉向執行下一條。
(2)指定else子句時
當「表達式」的值不等於0(即判定為「邏輯真」)時,則執行語句組1,然後轉向下一條語句;否則,執行語句組2。如圖4-1(b)所示。
3.if語句的嵌套與嵌套匹配原則
if語句允許嵌套。所謂if語句的嵌套是指,在「語句組1」或(和)「語句組2」中,又包含有if語句的情況。
if語句嵌套時,else子句與if的匹配原則:與在它上面、距它最近、且尚未匹配的if配對。
為明確匹配關系,避免匹配錯誤,強烈建議:將內嵌的if語句,一律用花括弧括起來。
⑨ C語言define和if定義用戶標識符嗎
C語言合法標識符規則如下:
1 由數字,字母,下劃線組成;
2 不能由數字開頭。即第一個字元只能是字母或下劃線。
3 區分大小寫。
4 不可與系統關鍵字相同。
define和if都是C語言的關鍵字,不符合第4條,所以不能稱為用戶標識符。
其中,define是宏定義的關鍵字,而if的判斷語句的關鍵字。
⑩ 【c語言】void、define、WORD、If 哪些可以做用戶表示符,請說明理由。
void是關鍵字。不可以作為用戶標識符。
其他三個都可以。
需要注意的是define是預編譯命令,而不是關鍵字,所以define是可以作為標識符的。
另外 If的i是大寫,和if不同,一樣可以做標識符。