青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
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.?高精度算法
搜索
積分與排名
積分 - 35078
排名 - 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
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲欧洲精品一区二区精品久久久
|
国精产品99永久一区一区
|
亚洲成人在线视频网站
|
久久亚洲一区
|
欧美aaaaaaaa牛牛影院
|
欧美jizz19性欧美
|
亚洲国产精品精华液2区45
|
欧美不卡在线视频
|
亚洲人久久久
|
亚洲一级在线观看
|
久久精品免费
|
欧美人成免费网站
|
欧美四级在线
|
国产一区深夜福利
|
99国产精品久久久久老师
|
亚洲一区久久
|
牛牛国产精品
|
一本色道久久
|
欧美主播一区二区三区美女 久久精品人
|
一二三四社区欧美黄
|
亚洲尤物在线
|
久久蜜桃资源一区二区老牛
|
欧美激情第五页
|
亚洲自拍偷拍麻豆
|
欧美成人嫩草网站
|
国产精品麻豆va在线播放
|
亚洲韩国精品一区
|
欧美影视一区
|
亚洲精品视频在线看
|
久久精品盗摄
|
欧美日韩一区二区三
|
国产私拍一区
|
一本色道久久加勒比88综合
|
欧美一区二区三区成人
|
亚洲国语精品自产拍在线观看
|
亚洲综合国产
|
欧美黄色aaaa
|
在线观看免费视频综合
|
黄色成人av在线
|
99精品福利视频
|
欧美 日韩 国产在线
|
香蕉免费一区二区三区在线观看
|
美女露胸一区二区三区
|
国产免费成人
|
亚洲欧美国产精品桃花
|
亚洲伦伦在线
|
欧美激情综合在线
|
亚洲黄网站在线观看
|
久久av一区二区三区
|
亚洲永久免费观看
|
久久国产精品99国产
|
欧美精品久久天天躁
|
一区二区亚洲
|
久久精品女人
|
亚久久调教视频
|
国产伦理一区
|
亚洲一区在线直播
|
99精品视频免费全部在线
|
免费成人小视频
|
亚洲第一毛片
|
欧美福利网址
|
久久夜色精品国产欧美乱
|
国产一区视频观看
|
久久久欧美精品
|
久久激情婷婷
|
韩国三级电影久久久久久
|
久久精品欧美日韩
|
久久国产免费看
|
红桃视频亚洲
|
欧美freesex交免费视频
|
久久久久久欧美
|
在线欧美影院
|
亚洲黄色片网站
|
欧美激情综合亚洲一二区
|
最新国产成人av网站网址麻豆
|
男男成人高潮片免费网站
|
伊人春色精品
|
亚洲高清免费
|
欧美午夜在线视频
|
亚洲欧美日韩国产一区二区三区
|
亚洲系列中文字幕
|
国产精品影音先锋
|
麻豆久久久9性大片
|
欧美激情偷拍
|
欧美一级二级三级蜜桃
|
欧美在线一二三四区
|
亚洲国产一区二区视频
|
日韩一二三区视频
|
国产视频综合在线
|
亚洲国产小视频
|
国产精品一卡二卡
|
亚洲电影免费观看高清完整版在线
|
毛片av中文字幕一区二区
|
一本色道久久综合狠狠躁篇怎么玩
|
久久久久久久网
|
亚洲承认在线
|
日韩视频一区二区三区
|
国产精品视频网
|
亚洲成色www8888
|
国产精品区二区三区日本
|
免费日韩成人
|
国产精品免费一区二区三区观看
|
蜜臀久久99精品久久久画质超高清
|
亚洲欧美中日韩
|
久久久国产一区二区
|
裸体丰满少妇做受久久99精品
|
亚洲性av在线
|
久久夜色精品国产欧美乱极品
|
宅男精品视频
|
久久一区二区三区超碰国产精品
|
一本色道久久综合亚洲精品不卡
|
蜜臀av性久久久久蜜臀aⅴ四虎
|
欧美人与性动交a欧美精品
|
亚洲专区一区二区三区
|
久久久亚洲欧洲日产国码αv
|
99热精品在线
|
久久婷婷一区
|
性久久久久久久
|
欧美国产第一页
|
久久久久久久高潮
|
欧美视频精品一区
|
亚洲国产一二三
|
在线观看亚洲a
|
性久久久久久久久
|
香蕉久久精品日日躁夜夜躁
|
欧美精品少妇一区二区三区
|
欧美成人免费大片
|
国内精品久久久久久久97牛牛
|
夜夜嗨av一区二区三区四季av
|
国产精品国产三级国产普通话三级
|
免费在线观看一区二区
|
国产精品女主播一区二区三区
|
亚洲美女中出
|
亚洲视频电影图片偷拍一区
|
欧美人交a欧美精品
|
欧美激情亚洲综合一区
|
在线观看国产欧美
|
久久深夜福利
|
欧美激情精品久久久久久免费印度
|
黑人中文字幕一区二区三区
|
欧美专区在线播放
|
久久香蕉精品
|
亚洲高清不卡一区
|
免费成人av资源网
|
亚洲精品久久久久久久久久久久久
|
亚洲精品乱码久久久久久日本蜜臀
|
一本大道久久a久久综合婷婷
|
免费欧美电影
|
欧美凹凸一区二区三区视频
|
激情久久五月天
|
久久亚洲精品网站
|
欧美二区不卡
|
最新热久久免费视频
|
免费在线亚洲欧美
|
一区精品在线播放
|
亚洲色在线视频
|
欧美韩国日本一区
|
亚洲麻豆av
|
香蕉久久夜色
|
狠狠色丁香婷婷综合久久片
|
久久天堂成人
|
欧美激情中文不卡
|
亚洲日本成人网
|
欧美日韩在线播放一区
|
亚洲一二三区精品
|
免费不卡中文字幕视频
|
亚洲美女少妇无套啪啪呻吟
|
欧美三级电影精品
|
亚洲欧美日韩在线高清直播
|
久久综合给合
|
亚洲精选成人
|
国产一区二区三区在线观看免费视频
|
久久精品二区三区
|
亚洲美女在线看
|
欧美专区亚洲专区
|
99re66热这里只有精品4
|
国产免费成人
|
欧美黄色小视频
|
欧美一区三区三区高中清蜜桃
|
欧美顶级少妇做爰
|
欧美一区二区三区在线观看
|
国产精品毛片a∨一区二区三区|国
|
亚洲精品资源
|
久久精品国产精品亚洲
|
亚洲精品在线三区
|
国产欧美一区二区三区另类精品
|
亚洲女女女同性video
|
免费日韩av电影
|
午夜精品亚洲一区二区三区嫩草
|
亚洲国产精品va在看黑人
|
国产精品毛片在线看
|
欧美成人精品在线视频
|
欧美一级久久久
|
艳女tv在线观看国产一区
|
欧美成人三级在线
|
久久久久在线
|
性欧美1819sex性高清
|
中文成人激情娱乐网
|
亚洲欧洲精品一区二区精品久久久
|
欧美成人精品福利
|