前面說過,一個字的長度不得超過 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 單維彰