iT邦幫忙

DAY 29
0

21世紀C語言實作及感想系列 第 29

21世紀C語言之29: enum

  • 分享至 

  • xImage
  •  

本書作者說:

Enums are a good idea that went bad.

好點子卻做壞事情。

他舉了一下帶來的好處,

#define NORTH 0
#define SOUTH 1
#define EAST 2
#define WEST 3

東西南北比0,1,2,3好記多了。這樣寫要4句話,用enum,

enum directions {NORTH, SOUTH, EAST, WEST}; 只要一句話。

參考一下例子,

http://www.java2s.com/Code/C/Data-Type/Mapenumtocharandoutputwithforloop.htm

#include <stdio.h>

enum spectrum { red, orange, yellow,purple,blue,pink} colour;

char *rainbow[] = { "red", "orange", "yellow" };

int main() {
  
  for ( colour = red; colour <= yellow; colour++ ) {
      printf ( "%s ", rainbow[colour]);
  }

  printf ( "\n" );

}

用open 這個system call時,用enum來表示多個屬性,O_WRONLY|O_TRUNC|O_CREAT|O_BINARY,

而fopen 這個標準函式庫,只能用char, 就比較不好表達,多個屬性,就要去查一下,"wb","r+"...


上一篇
21世紀C語言之28: doxygen + graphviz
下一篇
21世紀C語言之30: switch
系列文
21世紀C語言實作及感想30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
krarm
iT邦好手 1 級 ‧ 2014-11-03 15:19:19

雖然C沒有內建關聯陣列。
多學了一招,實作了在"語法上"的關聯陣列。

我要留言

立即登入留言