Concurrent Clean + CodeGeneratorの日本語化

C言語の型キャストが全然分からない・・・。てか、getcの動きが分からない。ドキュメントには、getcはunsigned charで読み込んで、intに変換して返すと書いてあったのに。あ、Microsoftには、読み取った文字を int 型で返すと書いてある。gccでも、-mno-cygwinだから、動作が違うのか?
とりあえず、こんな感じに書いてみました。とりあえず、動くようです。

static int parse_string_character (char *c_p)
{
	if (last_char==EOF)
		return 0;

	if (last_char < 0) {
		last_char = 0x80 | (0x7F & last_char);
	}

	if(is_2nd_byte_of_sjis){
		// japanese Shift_JIS character
		is_2nd_byte_of_sjis = 0;
		*c_p = last_char;
		last_char = getc(abc_file);
	} else if(((0x81 <= last_char) && (last_char <= 0x9F)) || ((0xE0 <= last_char) && (last_char <= 0xFF))){
		// japanese Shift_JIS character
		is_2nd_byte_of_sjis = 1;
		*c_p = last_char;
		last_char = getc(abc_file);