巨集通常被應用於執行簡單的運算。
用於調和函式和從函式返回的**可能比實際執行這個小型計算工作所需要的時間更多。所以巨集比函式在程式的規模和速度方面更勝一籌。
函式的引數必須宣告為特定的型別,所以函式只能在型別合適的表示式上使用。而巨集可以適用於整形,長整形,浮點型等可以用來比較的型別。巨集是型別無關的。
每次使用巨集的時候,乙份巨集定義的**將插入到程式中。除非巨集比較短,否則可能大幅度增加程式的長度。
巨集是沒辦法除錯的。
巨集由於與型別無關,容易出現錯誤。
巨集可能會帶來運算子優先順序的問題,導致程式容易出現錯誤。
#define _crt_secure_no_warnings 1
#include
#define exchange(x) (((x&(0xaaaaaaaaa)) >> 1) + ((x&(0x555555555)) << 1))
int main()
; scanf("%d", &a);
for (i = 31; i >=0; i--)
printf("%d的二進位制序列為:\n", a);
for (i = 0; i < 32; i++)
printf("\n");
printf("奇偶交換後的序列為:\n");
linux命令學習 基礎
vi 命令 e enter 這個可以丟失修改,不退出vi.q enter 這個丟失修改,退出vi 進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi ...
Linux基礎命令學習
使用者就是系統使用者的身份,在系統中使用者儲存為若干字串和若干個系統配置檔案。1 監控使用者資訊 etc passwd 使用者資訊 etc shadow 使用者密碼資訊 etc group 組資訊 home username 使用者家目錄 etc skel 使用者骨架檔案 當在 etc skel目錄...
Linux基礎命令學習
磁碟加密 cryptsetup luksformat dev vdb1 warning this will overwrite data on dev vdb1 irrevocably.are you sure?type uppercase yes yes 確定加密 enter passphrase...