komorebikoboshiのブログ

プログラミング記事(趣味レベル)が多め。

#includeなしでCプログラミング

こんな感じ?

test.c

int main(int argc,char *argv[]) {
	int ret = 0;
	int i;
	
	int stoi(char *s);
	
	for(i = 1;i < argc;i++) {
		ret = ret + stoi(argv[i]);
	}
	
	return ret;
}

int stoi(char *s) {
	/*文字列を整数に。関数名がひどい*/
	int i = 0;
	int r = 0;
	
	while(s[i] != '\0') {
		r = r * 10 + ((int)s[i] - 48);/*'0'のアスキーコードは48*/
		i++;
	}
	return r;
}

使ってみる

とりあえずコンパイルはできた。(Visual C++2008)
適当な整数をコマンドライン引数にして実行。すると!

C:\test>test 1 2 3 4 5

C:\test>

なにも起きないじゃん。
いや、ここですかさず echo %errorlevel% と入力!

C:\test>test 1 2 3 4 5

C:\test>echo %errorlevel%
15

C:\test>

はい、コマンドライン引数が足し合わされました。
はい、それだけです。

おわり

こんな感じの事ができないかなあ、とは前から思っていたけどどうやってググったらいいか分からなかった(「C include なし OR 使わない」とかで調べてもキーワードが一般的過ぎて目的のページにたどり着けない)ので、自分で書いてみることにしました。「毎回stdio.hなんぞにデカい顔されてたまるか!」と鼻息荒くプログラムを書いたのですが、すみません、これからも頼らせてください、#includeさん。整数しか返せないプログラムはいやです。

どうでもいいこと

「test.なんとか」というファイル名が多すぎる。ちなみに忙しい時は「aaa.なんとか」になる。忙しいのになんでaを3回も打つのかは謎。