要素数カウンター

*str[]の要素数をカウントするためのコードを書いてみたけれども、なんか番兵に相当するENDってかっこわるい気がする。これをNULLに書き換えようと思うのだけれども、素直に書き換えただけではだめらしい。

/*
 *   2006年2月4日
 *   *str[]の要素数をカウントする
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define END ("end")

char *month[] = {
	"January",
	"February",
	"March",
	"April",
	"May",
	"June",
	"July",
	"August",
	"September",
	"October",
	"November",
	"December",
	END,
};

int count_month(void)
{
	int i = 0;
	while (strcmp(month[i], END) != 0) {
		i++;
	}
	return i;
}

int main(int argc, char *argv[])
{
	printf("count_month = %d\n", count_month());
	
	return 0;
}