日記帳

日記です。

D言語おべんきお

printf() より std.stdio.writef() を使いましょう,ということを学んだ.

writef() や writefln() の方が安全だってのは知っていたんですが import std.stdio; の手間を惜しんで printf() を使っていました.それで以下のコードではまりました.

import std.date;
int main(char[][] args)
{
	d_time pre = getUTCtime();
	for (int i = 0;i < 10000;i++)
	{
		printf("Hello, World!\n");
	}
	d_time post = getUTCtime();
	printf("%d, %d\n", pre, post);

	return 0;
}

以下実行結果.

...
Hello, World!
1492414143, 271

writef()にすればちゃんと出る.

...
Hello, World!
1165428551359, 1165428551511

何が起きたか10分くらいわからなかったまぬけっぷり.C言語なら gcc -Wformat (ってかみんな -Wall だよね?)で警告出してくれるのにぃ.

プログラマはもっとコンパイラやCPUの気持ちになって考えないとダメだと思った.あんまり関係ないか.あと眠い.