前面說過,一個字的長度不得超過 31 個字元。 其實應該是說,C 語言的 ANSI 標準,規定各種編譯程式至少要接受前 31 個字元。 因此,某些編譯程式可能可以接受更長的字。 但是,為了原始碼可以安全在各種不同機器上、被不同廠牌的編譯器上編譯, 最好不要使用超過 31 個字元的字。
在 C 中,字的用途無非是
#include <stdio.h> /* 在函式內用函式的名字當做變數名。不好的示範,請勿學習 */ main() { char main[]="hello, world.\n"; printf("%s", main); }
#include <stdio.h> /* 用標準內部函式名 (getchar) 來當做變數名。不好的示範,請勿學習 */ main() { int getchar=49; printf("%d\n", getchar); }
#include <stdio.h> /* C 不允許 printf() 和變數 printf 在同一個函式內出現 */ main() { int printf=49; printf("%d\n", printf); }
不論個別的狀況可以或不可以,我們都應該極力避免使用到 C 的保留字或常用字。 以下我們列出一些需要避免的字。
auto | double | int | struct |
break | else | long | switch |
case | enum | register | typedef |
char | extern | return | union |
const | float | short | unsigned |
continue | for | signed | void |
default | goto | sizeof | volatile |
do | if | static | while |
abort() | exp() | gets() | rand() |
abs() | fabs() | isalnum() | realloc() |
acos() | fclose() | isalpha() | rewind() |
asin() | feof() | isdigit() | scanf() |
assert() | ferror() | islower() | sin() |
atan() | fgetc() | isprint() | sinh() |
atan2() | fgets() | ispunct() | sqrt() |
atexit() | floor() | isspace() | srand() |
atof() | fmod() | isupper() | strcat() |
atoi() | fopen() | labs() | strcmp() |
atol() | fprintf() | ldiv() | strcpy() |
bsearch() | fputc() | localtime() | strlen() |
calloc() | fputs() | log() | strstr() |
ceil() | fread() | log10() | strtod() |
clock() | free() | malloc() | strtol() |
cos() | fscanf() | pow() | strtoul() |
cosh() | fseek() | printf() | system() |
ctime() | fwrite() | putc() | tan() |
difftime() | getc() | putchar() | tanh() |
div() | getchar() | puts() | time() |
exit() | getenv() | qsort() | ungetc() |
CHAR_BIT | DBL_MIN | FLT_MIN | SIGABRT |
CHAR_MAX | DBL_MIN_EXP | FLT_MIN_EXP | SIGFPE |
CHAR_MIN | EOF | FLT_RADIX | SIGILL |
DBL_DIG | FLT_DIG | FLT_ROUNDS | SIGINT |
DBL_EPSION | FLT_EPSILON | INT_MAX | SIGSEGV |
DBL_MANT_DIG | FLT_MANT_DIG | INT_MIN | SIGTERM |
DBL_MAX | FLT_MAX | LONG_MAX | UCHAR_MAX |
DBL_MAX_EXP | FLT_MAX_EXP | LONG_MIN | UINT_MAX |
習題
注意:此處所有文件均為原著,個別的版權宣告日後會一一公布, 整體版面設計亦尚未完成。但仍請勿抄襲文字與圖片,以免觸犯著作權法。
Created: Apr 21, 2000
Last Revised: Apr 21, 2000
© Copyright 2000 Wei-Chang Shann 單維彰