首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言頭文件詳解:庫文件分類、Turbo C 31大頭文件功能與調用規範

     編輯:關於C語言

庫文件兩大類別

類別副檔名內容階段
頭文件.h常量定義、類型定義、宏定義、**函數原型聲明**、編譯選項編譯期 (預處理/編譯)
函數庫.lib / .a / .so / .dll函數目標代碼 (機器指令)鏈接期

鐵律:調用庫函數前,**必須**包含該函數原型所在的頭文件 (#include <head.h>),否則編譯器產生隱式聲明 (假設返回 int),導致類型不匹配、棧平衡錯誤、未定義行為。

Turbo C 31 大頭文件功能速查 (教學/維護舊項目參考)

頭文件核心功能域典型函數/宏
ALLOC.H內存管理 (分配/釋放/大內存模型)malloc, free, calloc, realloc, farcalloc, farmalloc, farfree
ASSERT.H斷言調試宏assert(expr)
BIOS.HIBM PC ROM BIOS 中斷調用bioskey, biosdisk, biosprint, bioscom, biosequip, biosmemory
CONIO.HDOS 控制台 I/O (非標準)getch, kbhit, clrscr, gotoxy, textcolor, textbackground, cprintf, cscanf
CTYPE.H字符分類與轉換isalpha, isdigit, isspace, isalnum, toupper, tolower, toascii, _toupper
DIR.H目錄與路徑操作mkdir, rmdir, chdir, getcwd, findfirst, findnext, fnsplit, fnmerge, MAXPATH, MAXDRIVE, MAXDIR, MAXFILE, MAXEXT
DOS.HDOS 系統調用、中斷、段寄存器、日期時間int86, int86x, intdos, intdosx, gettime, settime, getdate, setdate, REGS, SREGS, FP_SEG, FP_OFF
ERRNO.H錯誤碼助記符EDOM, ERANGE, ENOMEM, EINVAL, EDQUOT, ENOSPC, errno (外部變量)
FCNTL.H文件控制選項 (open 參數)O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_TRUNC, O_APPEND, O_BINARY, O_TEXT
FLOAT.H浮點類型特性常量FLT_MAX, FLT_MIN, FLT_EPSILON, FLT_DIG, DBL_MAX, DBL_DIG, LDBL_MANT_DIG
GRAPHICS.HBGI 圖形庫initgraph, closegraph, detectgraph, line, circle, arc, ellipse, floodfill, setcolor, setbkcolor, setlinestyle, setfillstyle, getpixel, putpixel, imagesize, getimage, putimage
IO.H低級 I/O (文件描述符)open, close, read, write, lseek, tell, eof, chmod, chsize, locking, creat, dup, dup2, pipe
LIMITS.H整數類型極限常量CHAR_BIT, CHAR_MAX, CHAR_MIN, INT_MAX, INT_MIN, LONG_MAX, LONG_MIN, UINT_MAX, ULONG_MAX
MATH.H數學函數sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, exp, log, log10, pow, sqrt, ceil, floor, fabs, fmod, frexp, ldexp, modf, HUGE_VAL, matherr, struct exception
MEM.H內存操作 (多與 STRING.H 重疊)memcpy, memset, memcmp, memchr, memmove, memccpy, movmem, setmem, _fmemcpy, _fmemset
PROCESS.H進程管理spawnl, spawnle, spawnlp, spawnlpe, spawnv, spawnve, spawnvp, spawnvpe, exec..., _exit, getpid, cwait
SETJMP.H非局部跳轉setjmp, longjmp, jmp_buf
SHARE.H文件共享模式SH_COMPAT, SH_DENYRW, SH_DENYWR, SH_DENYRD, SH_DENYNO
SIGNAL.H信號處理signal, raise, SIG_DFL, SIG_IGN, SIGINT, SIGTERM, SIGFPE, SIGSEGV, SIGABRT
STDARG.H可變參數表va_list, va_start, va_arg, va_end, va_copy (C99)
STDDEF.H標準定義NULL, offsetof, size_t, ptrdiff_t, wchar_t, max_align_t (C11)
STDIO.H標準 I/O 庫 (K&R Unix System V 兼容)printf, scanf, fopen, fclose, fread, fwrite, fseek, ftell, rewind, fgetc, fputc, fgets, fputs, fprintf, fscanf, sprintf, sscanf, stdin, stdout, stderr, _iob, FILE, BUFSIZ, EOF, SEEK_SET, SEEK_CUR, SEEK_END
STDLIB.H實用程序庫malloc, free, calloc, realloc, exit, abort, atexit, system, getenv, putenv, qsort, bsearch, abs, labs, llabs, div, ldiv, lldiv, strtol, strtoul, strtoll, strtoull, strtof, strtod, strtold, rand, srand, RAND_MAX, mblen, mbtowc, wctomb, mbstowcs, wcstombs
STRING.H字符串與內存操作strcpy, strncpy, strcat, strncat, strcmp, strncmp, strcoll, strxfrm, strlen, strchr, strrchr, strspn, strcspn, strpbrk, strstr, strtok, strerror, memset, memcpy, memmove, memcmp, memchr, memccpy, _fstrcpy, _fmemcpy
SYS\STAT.H文件狀態 (open/creat 模式)stat, fstat, S_IFMT, S_IFREG, S_IFDIR, S_IFCHR, S_IFBLK, S_IFIFO, S_ISUID, S_ISGID, S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
SYS\TYPES.H基本系統數據類型time_t, clock_t, size_t, off_t, ino_t, dev_t, pid_t, uid_t, gid_t, mode_t, nlink_t, blksize_t, blkcnt_t, fpos_t
SYS\TIME.H時間類型time_t, struct timeb (ftime), struct tm (localtime/gmtime)
TIME.H時間與日期轉換asctime, ctime, gmtime, localtime, strftime, difftime, mktime, time, clock, struct tm, CLOCKS_PER_SEC
VALUE.H機器相關極限常量 (硬件依賴 + Unix V 兼容)MAXSHORT, MAXINT, MAXLONG, MAXFLOAT, MAXDOUBLE, HIBITS, FLOAT_MAX, LN_MAXDOUBLE, LOG10_MAXDOUBLE, SQRT_MAXDOUBLE

調用規範與最佳實踐

  1. 精確包含:用 < > 包含系統頭文件," " 包含項目頭文件。
  2. 最小依賴:.h 中只包含接口必要的頭文件,實現細節頭文件移至 .c。
  3. 防重複包含:所有頭文件必須有 #ifndef GUARD_H / #define GUARD_H / #endif 或 #pragma once。
  4. 標準優先:優先使用 ISO C 標準頭文件 (stdio.h, stdlib.h, string.h...),減少平台鎖定。
  5. 編譯器警告全開:-Wall -Wextra -Wpedantic -Werror 強制暴露隱式聲明、類型不匹配。

總結

頭文件是 C 模塊化的契約介面。Turbo C 時代的 31 個頭文件承載了 DOS 系統編程的完整記憶;現代開發應聚焦 **ISO C 24 標準頭文件 + POSIX 擴展 + 項目自定義模塊頭文件**,遵循「精確包含、最小依賴、標準優先、警告全開」工程規範,構建可移植、可維護、高性能的 C 系統代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved