亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 關(guān)于c++兩種常量的區(qū)別,請(qǐng)各位大神指教 [打印本頁]

作者: 殘風(fēng)之影    時(shí)間: 2015-09-24 15:58
標(biāo)題: 關(guān)于c++兩種常量的區(qū)別,請(qǐng)各位大神指教
#define SIZE 100 和const int SIZE=100;的具體區(qū)別是什么
作者: T-Bagwell    時(shí)間: 2015-09-24 21:04
從定義的意義講:一個(gè)是100, 一個(gè)是SIZE常量,被賦值為100
從編譯之后看:

  1.         .file   "b.c"
  2.         .text
  3.         .globl  main
  4.         .type   main, @function
  5. main:
  6. .LFB0:
  7.         .cfi_startproc
  8.         pushq   %rbp
  9.         .cfi_def_cfa_offset 16
  10.         .cfi_offset 6, -16
  11.         movq    %rsp, %rbp
  12.         .cfi_def_cfa_register 6
  13.         movl    $100, -4(%rbp)
  14.         movl    $100, %eax
  15.         popq    %rbp
  16.         .cfi_def_cfa 7, 8
  17.         ret
  18.         .cfi_endproc
  19. .LFE0:
  20.         .size   main, .-main
  21.         .ident  "GCC: (GNU) 4.8.2 20140120 (Red Hat 4.8.2-16)"
  22.         .section        .note.GNU-stack,"",@progbits

復(fù)制代碼
是兩回事
一個(gè)是直接就是#define SIZE 100是在編譯的時(shí)候就已經(jīng)把SIZE替換成100了,因?yàn)槭穷A(yù)編譯的
SIZE=100,是當(dāng)運(yùn)行的時(shí)候,將100賦值給SIZE
作者: bayuan0414    時(shí)間: 2015-09-24 23:49
一個(gè)是宏,一個(gè)是不可變的整形變量。宏是由預(yù)處理器處理的,在編譯之前執(zhí)行,將源碼中出現(xiàn)有SIZE的地方全部替換為100。
作者: jorhai    時(shí)間: 2015-10-17 19:21
effective C++ 里專門有講
作者: 文峰聊書齋    時(shí)間: 2015-10-22 13:57
#define 是編譯時(shí)替換。沒有類型檢查

const 是變量聲明定義,涉及內(nèi)存開辟。
作者: scounixadmin    時(shí)間: 2015-10-23 12:57
宏與變量要區(qū)分開




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2