青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
small-fat
in fact , I'm not fat..
導航
C++博客
首頁
新隨筆
聯系
聚合
管理
統計
隨筆 - 32
文章 - 0
評論 - 23
引用 - 0
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(6)
給我留言
查看公開留言
查看私人留言
隨筆分類
about C++(2)
(rss)
Data Of ACM(19)
(rss)
日記(1)
(rss)
生活(1)
(rss)
之ACM.............(24)
(rss)
之mathematics........(3)
(rss)
隨筆檔案
2007年8月 (1)
2007年4月 (9)
2006年11月 (1)
2006年10月 (4)
2006年9月 (6)
2006年8月 (10)
2006年5月 (1)
相冊
Seeing is believing
My friends
qywyh
(rss)
輕松一刻
原諒一個強奸犯的自白(巨強悍!)
(rss)
最新隨筆
1.?netbeans中的c++配置
2.?Trie數+DP
3.?#define的用法
4.?pow函數比較不穩定,可以用自定義的pown函數進行計算
5.?multimap實現一對多映射
6.?多源最短路徑+最小路徑覆蓋
7.?動態創建二維數組
8.?用鏈表構造鄰接矩陣
9.?nlogn的最大上升子序列長度算法
10.?高精度算法
搜索
積分與排名
積分 - 35077
排名 - 590
最新評論
1.?re: 高精度算法
評論內容較長,點擊標題查看
--郭如君
2.?re: 高精度算法
就是用字符串表示一個數,如從1乘到1000,每位數用一個字節表示,負數表示如
-12345,等價于-1,8,7,6,5,5,高位肯定是-1。
--郭如君
3.?re: 歐拉函數
初次接觸歐拉函數,請教一下:7^d≡1 mod 60,是如何推導d的值為43?
--1111
4.?re: 高精度算法
評論內容較長,點擊標題查看
--an
5.?re: 高精度算法
評論內容較長,點擊標題查看
--an
閱讀排行榜
1.?擴展歐幾里德算法-求解不定方程,線性同余方程(3017)
2.?高精度算法(2779)
3.?多源最短路徑+最小路徑覆蓋(2501)
4.?netbeans中的c++配置(2235)
5.?ACM深度優先搜索(一題及代碼)(1830)
評論排行榜
1.?高精度算法(5)
2.?問題:UnionFindSet(3)
3.?國家隊論文(3)
4.?中國vs足球(2)
5.?ACM深度優先搜索(一題及代碼)(2)
#define的用法
轉載:
http://folsailor.bokee.com/6156411.html
#define的用法zz
今天整理了一些#define的用法,與大家共享!
1
.簡單的define定義
#define MAXTIME
1000
一個簡單的MAXTIME就定義好了,它代表1000,如果在程序里面寫
if
(i
編譯器在處理這個代碼之前會對MAXTIME進行處理替換為1000。
這樣的定義看起來類似于普通的常量定義CONST,但也有著不同,因為define的定義更像是簡單的文本替換,而不是作為一個量來使用,這個問題在下面反映的尤為突出。
2
.define的“函數定義”
define可以像函數那樣接受一些參數,如下
#define max(x,y) (x)
>
(y)?(x):(y);
這個定義就將返回兩個數中較大的那個,看到了嗎?因為這個“函數”沒有類型檢查,就好像一個函數模板似的,當然,它絕對沒有模板那么安全就是了。可以作為一個簡單的模板來使用而已。
但是這樣做的話存在隱患,例子如下:
#define Add(a,b) a
+
b;
在一般使用的時候是沒有問題的,但是如果遇到如:c
*
Add(a,b)
*
d的時候就會出現問題,代數式的本意是a
+
b然后去和c,d相乘,但是因為使用了define(它只是一個簡單的替換),所以式子實際上變成了
c
*
a
+
b
*
d
另外舉一個例子:
#define pin (
int
*
);
pin a,b;
本意是a和b都是int型指針,但是實際上變成int
*
a,b;
a是int型指針,而b是int型變量。
這是應該使用typedef來代替define,這樣a和b就都是int型指針了。
所以我們在定義的時候,養成一個良好的習慣,建議所有的層次都要加括號。
3
.宏的單行定義
#define A(x) T_##x
#define B(x) #@x
#define C(x) #x
我們假設:x
=
1
,則有:
A(
1
)
------
〉T_1
B(
1
)
------
〉
'
1'
C(
1
)
------
〉
"
1
"
(這里參考了 hustli的文章)
3
.define的多行定義
define可以替代多行的代碼,例如MFC中的宏定義(非常的經典,雖然讓人看了惡心)
#define MACRO(arg1, arg2)
do
{
\
/*
declarations
*/
\
stmt1;
\
stmt2;
\
/*
*/
\
}
while
(
0
)
/*
(no trailing ; )
*/
關鍵是要在每一個換行的時候加上一個
"
\
"
摘抄自http:
//
www.blog.edu.cn
/
user1
/
16293
/
archives
/
2005
/
115370
.shtml 修補了幾個bug
4
.在大規模的開發過程中,特別是跨平臺和系統的軟件里,define最重要的功能是條件編譯。
就是:
#ifdef WINDOWS
#endif
#ifdef LINUX
#endif
可以在編譯的時候通過#define設置編譯環境
5
.如何定義宏、取消宏
//
定義宏
#define [MacroName] [MacroValue]
//
取消宏
#undef [MacroName]
普通宏
#define PI (
3.1415926
)
帶參數的宏
#define max(a,b) ((a)
>
(b)? (a),(b))
關鍵是十分容易產生錯誤,包括機器和人理解上的差異等等。
6
.條件編譯
#ifdef XXX…(#
else
) …#endif
例如 #ifdef DV22_AUX_INPUT
#define AUX_MODE
3
#
else
#define AUY_MODE
3
#endif
#ifndef XXX … (#
else
) … #endif
7
.頭文件(.h)可以被頭文件或C文件包含;
重復包含(重復定義)
由于頭文件包含可以嵌套,那么C文件就有可能包含多次同一個頭文件,就可能出現重復定義的問題的。
通過條件編譯開關來避免重復包含(重復定義)
例如
#ifndef __headerfileXXX__
#define __headerfileXXX__
…
文件內容
…
#endif
以上只是我從網絡上搜集了一些關于define的一些用法,可能還不全面,而且#define的使用本來也存在這爭議,如果你對#define的用法也很有興趣,可以來參加我們的討論(點擊下面的鏈接)http:
//
www.dingge.com
/
forum
/
dispbbs.asp?boardID
=
43
&
ID
=
6972
&
page
=
1
#define 的注意用法
在這里我們講講#define的一些誤用,因為上一片已經講了它的主要作用,這篇主要是一些比較常見的宏陷阱。首先輕松一下。如下的一個經典例子。
#define
private
public
#include
using namespace std;
class c
{
private
:
int
i;
};
int
main()
{
c c1;
c1.i
=
1
;
cout
<
}
#define 竟然讓private如此的脆弱,但是卻揭示了#define陷阱的根源,它僅僅是代碼替換機制而已,除此之外,它什么都不是。
讓我們步入正題,來看看下面的一個定義會產生一個什么樣的錯誤?
#define f (x) ((x)
-
1
)
如果這個是一個函數就沒有什么問題
int
f (
int
x) { return x
-
1
; }
但是這里是define的世界,f(x)只見出現了一個可怕的空格
使得使得程序中如果出現了
f(
10
)
這個代碼,最終就變成了
(
10
) (
10
-
1
)(
10
)這樣一個奇怪的東西,當然這個代碼倒是無法通過編譯,還是可以檢查出來的。算是讓我們逃過了一次,下次就沒有那么幸運了,讓我們繼續。
#define
abs
(x) x
>
0
? x:
-
x (引用自C語言陷阱與缺陷)
這個代碼有什么問題?也許大家也注意到了,我一直在用無數的()來寫#define,不是因為我很喜歡()這個東西,而是當我在進行如下的調用的時候。
z
=
abs
(a
-
b)
//
嗚呼,這將產生什么東西呢?
答案是:
a
-
b
>
0
? a
-
b :
-
a
-
b
這個顯然不是我們要的結果,因為當a
-
b
<
0的時候將返回一個
-
a
-
b,要解決這個問題,我們就要使用()來解決。
#define
abs
(x) (x)
>
0
? (x):
-
(x)
現在這個代碼就可以正常的工作了。只要我們緊記#define是代碼替換的機制,不要對它有任何的奢求,就會避免上面的問題。另外,因為宏不是一個類型,沒有數據安全檢查,在調試的時候也會產生障礙,所以,C
++
就一直提倡使用const和inline來替換#define,也許,#define真的會在歷史的舞臺上消失,但define在C語言時代留下的功績卻不應該忘記。
來自 http:
//
community.csdn.net
/
Expert
/
topic
/
3195
/
3195102
.xml?temp
=
.
3936731
posted on 2007-04-18 23:53
small-fat
閱讀(1357)
評論(1)
編輯
收藏
引用
所屬分類:
about C++
Comments
#
re: #define的用法
Achigo
Nice
Posted @ 2007-06-27 15:45
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
netbeans中的c++配置
#define的用法
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © small-fat
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
国产日韩欧美中文
|
久久精品国产精品亚洲综合
|
午夜精品一区二区三区在线视
|
美女日韩在线中文字幕
|
快she精品国产999
|
亚洲第一中文字幕
|
亚洲免费成人
|
亚洲一区在线播放
|
久久婷婷色综合
|
欧美日韩的一区二区
|
国产精品一区2区
|
在线免费精品视频
|
亚洲视频在线看
|
久久久蜜桃一区二区人
|
亚洲经典自拍
|
性欧美1819sex性高清
|
美女国产一区
|
国产精一区二区三区
|
亚洲国产精品美女
|
性色一区二区三区
|
欧美激情精品久久久久久大尺度
|
一本到高清视频免费精品
|
香蕉免费一区二区三区在线观看
|
免费h精品视频在线播放
|
国产精品久久久久9999
|
亚洲国产日韩在线一区模特
|
亚洲欧美bt
|
亚洲黄色成人
|
久久婷婷国产综合国色天香
|
国产精品二区影院
|
亚洲人午夜精品免费
|
久久国产欧美精品
|
中文国产成人精品
|
欧美伊人精品成人久久综合97
|
在线亚洲一区
|
欧美国产免费
|
亚洲一区二区网站
|
欧美激情五月
|
狠狠色狠色综合曰曰
|
亚洲资源av
|
亚洲精品免费网站
|
久久久噜噜噜久久中文字幕色伊伊
|
欧美一区日韩一区
|
亚洲精品在线视频观看
|
麻豆91精品91久久久的内涵
|
国产日韩欧美精品
|
午夜精品久久久久久久男人的天堂
|
亚洲成色777777在线观看影院
|
国产日韩欧美电影在线观看
|
亚洲国产裸拍裸体视频在线观看乱了中文
|
欧美视频日韩视频
|
中文av字幕一区
|
亚洲精品日产精品乱码不卡
|
女人色偷偷aa久久天堂
|
亚洲高清不卡av
|
蜜桃av一区二区三区
|
欧美在线视频免费
|
国产一区二区三区四区在线观看
|
午夜免费日韩视频
|
亚洲自拍偷拍视频
|
国产精品爽爽爽
|
久久不射中文字幕
|
久久久久国产免费免费
|
黄色综合网站
|
欧美黄色日本
|
欧美日韩亚洲成人
|
亚洲欧美日韩综合国产aⅴ
|
亚洲一区二区四区
|
国产日韩欧美综合
|
欧美91精品
|
欧美精品123区
|
亚洲一区二区三区高清
|
亚洲一区二区欧美
|
黄色小说综合网站
|
欧美激情中文字幕一区二区
|
欧美精品一区二区三区高清aⅴ
|
夜夜嗨av色一区二区不卡
|
99国产麻豆精品
|
国产精品久久久久久久久久免费
|
欧美一区二区免费观在线
|
久久福利精品
|
亚洲毛片网站
|
亚洲人成网站777色婷婷
|
另类激情亚洲
|
99视频精品在线
|
亚洲综合日韩中文字幕v在线
|
国产一区二区三区在线观看精品
|
久久久久.com
|
欧美激情国产日韩
|
午夜亚洲一区
|
欧美a级在线
|
欧美一区二区三区在
|
六月婷婷一区
|
欧美一级黄色网
|
欧美福利在线
|
久久久精品国产免大香伊
|
欧美激情综合五月色丁香小说
|
香蕉成人啪国产精品视频综合网
|
久久全球大尺度高清视频
|
亚洲素人一区二区
|
裸体丰满少妇做受久久99精品
|
亚洲一区成人
|
欧美1区3d
|
久久久综合精品
|
国产精品视频男人的天堂
|
亚洲激情国产精品
|
激情小说亚洲一区
|
亚洲欧美日韩一区在线
|
亚洲夜晚福利在线观看
|
美日韩精品视频
|
久久麻豆一区二区
|
国产精品入口福利
|
一本久道综合久久精品
|
亚洲精品国产精品国产自
|
久久精品夜夜夜夜久久
|
久久成人免费日本黄色
|
欧美午夜视频
|
亚洲美女中出
|
亚洲美女一区
|
欧美顶级大胆免费视频
|
欧美gay视频
|
精品999网站
|
欧美一级理论片
|
欧美伊人影院
|
国产欧美日韩
|
午夜精品一区二区三区在线视
|
亚洲欧美不卡
|
国产女优一区
|
先锋影音久久
|
久久精品理论片
|
国产日韩欧美精品综合
|
亚洲欧美日韩国产一区二区
|
亚洲综合视频网
|
国产精品日日做人人爱
|
亚洲在线观看免费视频
|
欧美一区二区视频观看视频
|
国产女主播一区
|
欧美在线视频不卡
|
你懂的一区二区
|
亚洲精品一二
|
欧美视频在线免费
|
亚洲欧美在线免费观看
|
久久久久在线
|
亚洲欧洲一区二区三区
|
亚洲一二三四区
|
午夜在线电影亚洲一区
|
午夜伦理片一区
|
国产色爱av资源综合区
|
欧美在线播放
|
免费亚洲电影在线
|
aa成人免费视频
|
国产精品中文字幕在线观看
|
欧美在线三区
|
亚洲国产精品成人
|
亚洲自拍三区
|
在线播放豆国产99亚洲
|
欧美电影免费观看网站
|
亚洲视频免费
|
蜜臀久久99精品久久久画质超高清
|
亚洲国产精品久久人人爱蜜臀
|
亚洲视频综合
|
国产亚洲女人久久久久毛片
|
老司机午夜精品视频在线观看
|
亚洲欧洲一区二区三区
|
性刺激综合网
|
亚洲欧洲精品一区二区三区
|
国产精品劲爆视频
|
久久视频在线视频
|
中文高清一区
|
亚洲成色精品
|
欧美专区18
|
日韩午夜电影在线观看
|
国产欧美视频一区二区三区
|
免费成人激情视频
|
亚洲男人av电影
|
亚洲激情图片小说视频
|
午夜视频久久久久久
|
亚洲精品偷拍
|
狠狠色噜噜狠狠狠狠色吗综合
|
欧美日韩黄视频
|
久久婷婷久久
|
欧美一区二区精品久久911
|
亚洲免费av片
|
欧美激情一区二区三区在线视频
|
亚洲日本视频
|
蜜桃av综合
|
久久成人这里只有精品
|
一区二区三区久久久
|
在线看无码的免费网站
|
国产精品一国产精品k频道56
|
欧美经典一区二区
|
美女在线一区二区
|
久久久精品久久久久
|
欧美一区二区观看视频
|
亚洲一级黄色
|
99综合在线
|
日韩午夜在线电影
|
亚洲黄一区二区
|
亚洲国产高清一区
|
欧美激情1区2区
|