學點 C 語言(16): 資料類型 – 關於常量的首碼、尾碼

來源:互聯網
上載者:User
曾經對 float num = 3.14f; 這樣的賦值非常疑惑, 其實現在也不明白.既然說明了是 float 類型, 又何必在 3.14 後面掛個 f 呢?書上說: int num    = 100;  一個整數常量將預設為 int 類型(除非常數有尾碼或超出了 int 的範圍)double num = 3.14; 一個浮點數常量將預設為 double 類型並要求:long num               = 100L;long long num          = 100LL;unsigned long          = 100UL;unsigned long long num = 100ULL;float num = 3.14f;這些尾碼是大小寫無關的、(U 和 L是)無順序的; 我反覆測試, 看不出沒有區別.我覺得這些東西用於 #define 還說得過去, 用於指定類型的變數有必要嗎?我猜唯一的必要性或許是讓編譯器少轉換一次.不過知道還是有好處, 以免看不懂別人的代碼.總之, 前人應該自有道理, 希望誰知道能告訴我.另外, 如果是十六進位或八進位常數, 將從 int、unsigned、long、unsigned long 中自動選擇最小的類型.

其他情況:

#include <stdio.h>#include <stddef.h>int main(void){    char c = 'a';    char cs[] = "abc";    wchar_t wc = L'A';     /* 這個 L 也可以省略 */    wchar_t ws[] = L"ABC";     int n1 = 65535;    int n2 = 0xFFFF;       /* 十六進位   */    int n3 = 0Xffff;       /* 大小寫都行 */    int n4 = 0177777;      /* 八進位     */    printf("%c, %s, %c, %S\n", c, cs, wc, ws);    printf("%d, %d, %d, %d\n", n1, n2, n3, n4);        getchar();    return 0;}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.