原创 C語言修改dos窗口的大小

Windows 在Window32下:system("mode con cols=30 lines=20"); 裏面的數字可以改: char stCmd[128]; sprintf("mode con cols=%d lines=

原创 C語言有符號數和無符號數進行比較的陷阱

當有符號數和無符號數比較的時,如果有符號數的類型低於無符號數的類型,會發生類型提升,要當心。 只要有一個操作數是無符號數,另一個也會被轉成無符號數,這種說法是不對的;理由是,實際的轉換是按類型大小關係進行的,但並不是所有的無符號數

原创 gcc編譯inline函數報錯:未定義的引用

一個簡單的inline函數 inline void swap(char *x, char *y){char t = *x; *x=*y; *y=t;} 編譯的時候報錯 gcc --std=c11 -Wall -c -o p

原创 小篇總結

正則表達式 awk 命令,正則表達式放在兩個斜槓之間: /regex/ javascript 語言,也是如此。 sed 和 vi 命令,正則表達分隔符是自定義的:sed:sed 's/regex/replace/,s 's,reg

原创 GMP 6.1.2 安裝記錄

GMP官網https://gmplib.org/ GMP是開源免費的高精度數學計算庫(GNU Multiple Mrecision arithmetic library),它針對各種型號的CPU編寫彙編代碼、使用複雜算法實現高效率

原创 *p 和 p[] 的等價性

C語言中,除了聲明函數形參,別的地方char *p 和 char p[] 不等價。 #include <stdio.h> char arr[N]; int main(void){ char a[] = {"hello"};

原创 gcc動態庫與動態庫生成和鏈接

gcc 生成共享庫 一般是創建共享庫的命令如下 gcc -fPIC -c foo.c -o foo.o gcc -fPIC -c bar.c -o bar.o gcc -shared foo.o bar.o -o libz.so

原创 strtok()函數使用示例

/* 單詞分割 用 string.h 的 strtok() 函數做單詞分割。 */ #include <stdio.h> #include <string.h> #define N 120 char san[N+1] = "h

原创 printf()和scanf()

GNU關於printf()函數的說明。原來C的printf()也支持參數索引。scanf()還支持字符過濾。 #include <stdio.h> int main(void){ int a=9898; print

原创 MinGW-GCC中的`printf()`不能識別 llu 說明符

// 輸出 unsigned long long 類型的數組 void show_array(ull arr[], int size){ int col = 5; for (int i = 0; i<size;i+

原创 PTA習題(C語言版本)- 1003 我要通過! (20 分)

原題如下 “答案正確”是自動判題系統給出的最令人歡喜的回覆。本題屬於 PAT 的“答案正確”大派送 —— 只要讀入的字符串滿足下列條件,系統就輸出“答案正確”,否則輸出“答案錯誤”。 得到“答案正確”的條件是: 字符串

原创 Makefile 自動處理頭文件依賴

自動處理頭文件依賴 gnu make手冊提供的腳本 sources:=foo.c bar.c include $(sources:.c=.d) %.d: %.c set -e; rm -f $@; \

原创 C語言數據長度

一種說法,整型所佔空間大小和CPU相關 但是 MinGW 的64 位gcc編譯器下,long 是32位的。查了資料,原來C標準沒有規定long必須是64位的。 C標準只規定了 int 的長度不低於 short,long 的長度

原创 C語言qsort()函數中傳入的比較函數,其參數類型

問題描述 一個字符串排序程序,使用了庫函數qsort(),但運行結果不對。 /* file: test.c 用戶輸入三個字符串,程序排序後按升序輸出。 */ #include <stdio.h> #include <string.

原创 7-19 計算天數 (15 分) - 錯題總結

原題 /* 7-19 計算天數 (15 分) 本題要求編寫程序計算某年某月某日是該年中的第幾天。 輸入格式: 輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除