C中符号常量用宏定义和const有什么区别 C语言中,对符号常量进行定义的方法-----宏定义跟"con...

C\u4e2d\u7b26\u53f7\u5e38\u91cf\u7528\u5b8f\u5b9a\u4e49\u548cconst\u6709\u4ec0\u4e48\u533a\u522b

\u76f8\u540c\u70b9\uff1a\u4e24\u8005\u7684\u503c\u90fd\u4e0d\u80fd\u88ab\u4fee\u6539
\u4e0d\u540c\u70b9\uff1a\u4f5c\u7528\u7684\u8303\u56f4\u4e0d\u540c\uff0c\u5b8f\u5b9a\u4e49\u7684\u53d8\u91cf\u5728\u6574\u4e2a\u7a0b\u5e8f\uff0c\u800c\u4e14\u5b9a\u4e49\u65f6\u4e0d\u9700\u8981\u5199\u51fa\u53d8\u91cf\u7c7b\u578b\uff0cconst\u5219\u9700\u8981
\u4e3e\u4e2a\u4f8b\u5b50\uff0c#define N 100\u548cconst int N=100;
\u5b8f\u5b9a\u4e49\u7684\u53d8\u91cf\u53ef\u4ee5\u662f\u4efb\u610f\u7c7b\u578b\uff0c\u751a\u81f3\u662f\u4e00\u4e2a\u4ee3\u6570\u8868\u8fbe\u5f0f
\u5728\u4efb\u610f\u4e00\u4e2a\u51fd\u6570\u4e2d\u90fd\u53ef\u4ee5\u4f7f\u7528N\uff0c\u90fd\u4ee3\u8868100
\u800cconst\u5b9a\u4e49\u7684\u53d8\u91cf\u867d\u7136\u503c\u4e0d\u80fd\u4fee\u6539\uff0c\u4f46\u4e5f\u53ea\u80fd\u5728\u5b9a\u4e49\u8be5\u53d8\u91cf\u7684\u51fd\u6570\u4f53
\u5185\u4f7f\u7528\uff0c\u9664\u975e\u5b9a\u4e49\u7684\u662f\u5168\u5c40\u53d8\u91cf
\u5b83\u4eec\u4e4b\u95f4\u7684\u5dee\u522b\u4e0d\u662f\u5f88\u5927\uff0c\u5982\u679c\u4f60\u60f3\u5b9a\u4e49\u4e00\u4e2a\u53d8\u91cf\u4f5c\u7528\u6574\u4e2a\u7a0b\u5e8f\uff0c\u5c31\u91c7\u7528
\u5b8f\u5b9a\u4e49\u7684\u5f62\u5f0f\uff0c\u4e4b\u540e\u5982\u679c\u4f60\u60f3\u4fee\u6539\u8fd9\u4e2a\u53d8\u91cf\uff0c\u76f4\u63a5\u5728\u5b9a\u4e49\u51fa\u4fee\u6539\u5373\u53ef\uff0c\u5f53\u7136
\u7528const\u5b9a\u4e49\u4e00\u4e2a\u5168\u5c40\u53d8\u91cf\u4e5f\u80fd\u8fbe\u5230\u76f8\u540c\u7684\u76ee\u7684
\u3010\u539f\u521b\u7b54\u4eba\u3011

\u5b8f\u5b9a\u4e49\u53ea\u662f\u5728\u7a0b\u5e8f\u7f16\u8bd1\u65f6\u7f16\u8bd1\u5668\u81ea\u52a8\u66ff\u6362\u76f8\u5e94\u7684\u5b8f\uff0c\u800cconst\u5b9a\u4e49\u7684\u662f\u5e38\u91cf\u4fbf\u4e8e\u8fdb\u884c\u7c7b\u578b\u68c0\u67e5
define\u662f\u7b80\u5355\u7684\u66ff\u6362
const ABC value \u4f1a\u8fdb\u884c\u7c7b\u578b\u68c0\u67e5

相同点:两者的值都不能被修改
不同点:作用的范围不同,宏定义的变量在整个程序,而且定义时不需要写出变量类型,const则需要
举个例子,#define
N
100和const
int
N=100;
宏定义的变量可以是任意类型,甚至是一个代数表达式
在任意一个函数中都可以使用N,都代表100
而const定义的变量虽然值不能修改,但也只能在定义该变量的函数体
内使用,除非定义的是全局变量
它们之间的差别不是很大,如果你想定义一个变量作用整个程序,就采用
宏定义的形式,之后如果你想修改这个变量,直接在定义出修改即可,当然
用const定义一个全局变量也能达到相同的目的
【原创答人】

define:定义预编译时处理的宏;
只进行简单的字符替换,无类型检测
const:定义程序中的常量,编译时处理;
常量修饰符,把变量定义为常量

  • C璇█涓 const鍙互鐩存帴淇グ鏁版嵁绫诲瀷鍚?
    绛旓細const瀹氫箟甯搁噺浠庢眹缂栫殑瑙掑害鏉ョ湅,鍙槸缁欏嚭浜嗗搴旂殑鍐呭瓨鍦板潃,鑰屼笉鏄薄#define涓鏍风粰鍑虹殑鏄珛鍗虫暟,鎵浠,const瀹氫箟鐨勫父閲忓湪绋嬪簭杩愯杩囩▼涓彧鏈変竴浠芥嫹璐,鑰#define瀹氫箟鐨勫父閲忓湪鍐呭瓨涓湁鑻ュ共涓嫹璐濄 (7) 鎻愰珮浜嗘晥鐜囥 缂栬瘧鍣ㄩ氬父涓嶄负鏅歝onst甯搁噺鍒嗛厤瀛樺偍绌洪棿,鑰屾槸灏嗗畠浠繚瀛樺湪绗﹀彿琛ㄤ腑,杩欎娇寰楀畠鎴愪负涓涓紪璇戞湡闂寸殑甯搁噺...
  • 鍗曠墖鏈c璇█瀹忓畾涔鏈夊嚑绉
    绛旓細姝g‘鐨瀹忓畾涔鏄#define S(r) ((r)*(r))锛2锛夊畯鍚嶅拰鍙傛暟鐨勬嫭鍙烽棿涓嶈兘鏈夌┖鏍 锛3锛夊畯鏇挎崲鍙綔鏇挎崲锛屼笉鍋氳绠楋紝涓嶅仛琛ㄨ揪寮忔眰瑙 锛4锛夊嚱鏁拌皟鐢ㄥ湪缂栬瘧鍚庣▼搴忚繍琛屾椂杩涜锛屽苟涓斿垎閰嶅唴瀛樸傚畯鏇挎崲鍦ㄧ紪璇戝墠杩涜锛屼笉鍒嗛厤鍐呭瓨 锛5锛夊畯鐨勫搼瀹炵粨鍚堜笉瀛樺湪绫诲瀷锛屼篃娌℃湁绫诲瀷杞崲銆傦紙6锛夊嚱鏁板彧鏈変竴涓繑鍥炲硷紝...
  • 璇烽棶c 璇█涓殑 const 鏄粈涔堟剰鎬?
    绛旓細const鏄疌++鎵嶆湁鐨勶紝鍜孋璇█鐨刣efine涓鏍蜂篃鏄敤鏉瀹氫箟甯搁噺鐨勩傚嵆鍑虹幇鍦╟onst鍚庨潰鐨勬槸甯搁噺锛屾槸鏈夊湴鍧鐨勶紝鍙互鐢ㄦ寚閽堟潵鎸囧悜閭d釜甯搁噺鍊硷紝浣嗘槸涓嶈兘淇敼瀹冦
  • 璺眰C++涓殑甯搁噺CONST鐨勭畝鍗曟槗鎳傜殑瑙i噴!!!鐪嬩簡10涓皬鏃朵篃娌$湅閫忓憖...
    绛旓細const灏辨槸瀹氫箟甯搁噺鍟,姣斿浣犲啓:const int MY_ERROR=1;閭d箞浣犳帴涓嬪幓鐨勭▼搴忎腑鍑虹幇MY_ERROR灏辫窡鍑虹幇1鏄浉鍚岀殑.瑕佹敞鎰忕殑鏄,甯搁噺瀹氫箟涔嬪悗灏变笉鑳藉啀鏀瑰彉瀹冪殑鍊间簡,鎺ョ潃涓婇潰鐨勪緥瀛,姣斿浣犲張鍐:MY_ERROR++;杩欐槸涓嶅厑璁哥殑.杩樻湁涓鐐,甯搁噺鐨勫畾涔変竴鑸鏀惧埌鎵鏈夌殑绫诲拰鍑芥暟鐨勫闈,鎵浠ュ父閲忕殑鐢熷懡鏈熸槸鏈闀跨殑,鍗冲...
  • C璇█涓殑鏁版嵁绫诲瀷浣跨敤闂
    绛旓細瀹涓#鍜##鐨勭敤娉曚竴銆佷竴鑸敤娉曟垜浠娇鐢#鎶婂畯鍙傛暟鍙樹负涓涓瓧绗︿覆,鐢##鎶婁袱涓畯鍙傛暟璐村悎鍦ㄤ竴璧.鐢ㄦ硶#includecstdio#includeclimitsusing namespace std;#define STR(s) #s#define CONS(a,b) int(a##e##b)int main(){printf(STR(vck)); 杈撳嚭瀛楃涓瞯ckprintf(%dn, CONS(2,3)); 2e3 杈撳嚭2000return ...
  • 鏀惧湪鍑芥暟鍚庨潰鐨刢onst鏄粈涔堟剰鎬
    绛旓細const淇グ璇存槑瀹冩槸涓涓甯搁噺锛屽畠鐨勫兼槸涓嶈兘琚慨鏀圭殑銆傛病鏈変粈涔堝湴鏂规槸蹇呴』瑕佺敤鐨勶紝浣犲彧瑕佽寰楄繖涓暟瀛椾綘涓嶄細鏀瑰彉灏卞彲浠ョ敤銆備竴鑸湪鍑芥暟浼犻掑弬鏁颁腑鐢ㄧ殑姣旇緝澶氾紝浣犲彲浠ョ湅鐪C璇█鐨勫簱鍑芥暟鍙傛暟涓緢澶氶兘鏄敤const淇グ鐨勩傛瘮濡傚瓧绗︿覆鎷疯礉鐨勫0鏄庡嚱鏁癱har *strcpy(char *dest,const char *src); 鍚庤竟鐨勫舰鍙傜敤浜...
  • 缂栫▼涓畯鐨勭敤娉
    绛旓細port, val) (((volatile word ) (port)) = ((word) (val)))define outpdw(port, val) (((volatile dword ) (port)) = ((dword) (val)))[2005-9-9娣诲姞]19,浣跨敤涓浜涘畯璺熻釜璋冭瘯 A N S I鏍囧噯璇存槑浜嗕簲涓瀹氫箟鐨勫畯鍚嶃傚畠浠槸锛歘 L I N E __ F I L E __ D A T E _...
  • 杩樻槸 鍏充簬涓涓狢++鐨勫皬闂
    绛旓細const鏄竴涓C璇█鐨勫叧閿瓧锛屽畠闄愬畾涓涓彉閲忎笉鍏佽琚敼鍙樸傚彉閲忓墠鍔燾onst灏辨槸鎵璋撶殑鍙鍙橀噺銆傛敞鎰忓姞浜嗗悗鍦ㄧ▼搴忎腑鍙橀噺鏄笉鑳藉啀琚敼鍙樺肩殑 2.宸埆鏄涓涓紶鍒板嚱鏁板唴鐨勬槸涓甯搁噺3.鑰岀浜屼釜浼犵殑鏄舰鍙傦紝鍗冲彲浠ヤ紶鍏ュ疄鍙傚埌鍑芥暟鍐呴儴 3.int long int short int unsigned int unsigned short int unsigned ...
  • 鍦ㄣ婅蒋浠舵晠浜嬨嬩腑璇碙isp鎯虫瘮FORTRAN鏄釜宸ㄥぇ鐨勮繘姝ャ傝闂,Lisp姣擣ORTRAN...
    绛旓細鏈甯哥敤鐨勫仛娉曞氨鏄浣跨敤瀹銆 鏈"瀹"鍦↙isp璇█涓,涓庡叾浠栬瑷涓殑鎰忔濅笉涓鏍枫侺isp瀹忔棤鎵涓嶅寘,瀹冩棦鍙兘鏄煇鏍疯〃杈惧紡鐨勭缉鐣ュ舰寮,涔熷彲鑳芥槸涓绉嶆柊璇█鐨勭紪璇戝櫒銆傚鏋滀綘鎯崇湡姝e湴鐞嗚ВLisp璇█,鎴栬呮兂鎷撳浣犵殑缂栫▼瑙嗛噹,閭d箞浣犲繀椤诲涔犲畯銆 灏辨垜鎵鐭,瀹(閲囩敤Lisp璇█鐨瀹氫箟)鐩墠浠嶇劧鏄疞isp鐙湁鐨勩備竴涓師鍥犳槸涓轰簡浣跨敤...
  • C璇█涓璫onst鏈変粈涔堢敤閫
    绛旓細const瀹氫箟甯搁噺浠庢眹缂栫殑瑙掑害鏉ョ湅锛屽彧鏄粰鍑轰簡瀵瑰簲鐨勫唴瀛樺湴鍧锛岃屼笉鏄儚#define涓鏍风粰鍑虹殑鏄珛鍗虫暟锛屾墍浠ワ紝const瀹氫箟鐨勫父閲忓湪绋嬪簭杩愯杩囩▼涓彧鏈変竴浠芥嫹璐濓紝鑰#define瀹氫箟鐨勫父閲忓湪鍐呭瓨涓湁鑻ュ共浠芥嫹璐濄6. 鎻愰珮浜嗘晥鐜囥傜紪璇戝櫒閫氬父涓嶄负鏅歝onst甯搁噺鍒嗛厤瀛樺偍绌洪棿锛岃屾槸灏嗗畠浠繚瀛樺湪绗﹀彿琛ㄤ腑锛岃繖浣垮緱瀹冩垚涓轰竴涓...
  • 扩展阅读:编程符号一览表 ... c中定义常量的关键字 ... c++符号大全 ... ctrl c不能用了怎么办 ... c语言中如何定义常量pi ... 用宏定义常量c语言 ... c语言40个常用符号 ... 特殊符号大全 ... c ++中各种符号的意思 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网