C言語のHelloWorldについて

よく入門サイトで見かけるHelloWorldはこれ。

#include <stdio.h>
int main(){
    printf("HelloWorld");
    return 0;
}

でもこれ、実行したらウィンドウが開いて一瞬で閉じられてしまうんですよ。
初心者の私はここでつまずきました。(諦めそうになりました)
そこでこれを入れましょう。

getchar();

このgetcharという関数はstdio.hで定義されているのでまた新しいファイルをインクルードする必要はありません。楽チン。
最終的にソースはこんなカタチになるんですね。

#include <stdio.h>
int main(){
    printf("HelloWorld");
    getchar();
    return 0;
}

これを実行するとウィンドウが開いて HelloWorld が表示されます。さっきと違うのはここでウィンドウが閉じられないところです。キーボードのボタン(どれでもいい)を押すと return 0 が実行されウィンドウが閉じられます( = プログラムを終了する)。

getchar という関数はその場でプログラムの進行を止めてくれる便利な関数です。と言うと簡単なんですが、本当は違います。getchar はキーボードのボタンが押されるまでプログラムの実行を止め、押されたならばそのキーボードの値を返すという2つの役割を持つ関数です。ここではプログラムの進行を止めるためだけに使っています。

C言語 入門」で検索をかけて出てきたサイトのソースで、printf(~) で計算結果を表示させて、直後に return文が書かれている、というのをよく見かけます。よく見かけるというか getchar 挟んでいるのを私は見たことがないです。
Visual Studio Express 2012 を私は使っていますが、何でしょうか、環境によって return文の前で止まったりするんですかね?よくわかりません。

[追記]

デバッグなしで開始」がありました。こうすることで「続行するには何かキーを押してください . . . 」が末尾に挿入されてキーボード入力待ちになるんですね。getchar いらず。
でもF5キーを押してパッと実行させたいのでやはり getchar は有効ではないかと思います。Releaseビルドで特に有効ですね。

HSPでClearTypeの実験

HSPで画像を3分の1(辺)に縮小するスクリプトを組みました。
それだけではつまらないのでClearTypeと同じ仕組みで縮小するサンプルを作りました。ClearTypeとはWindowsのフォントの描画で使われている技術です。ClearTypeについて詳しいのはこのサイト→ http://www.atmarkit.co.jp/fpc/xp_feature/cleartype/cleartype.html

それではスクリプトです。

screen 0
dialog "",16
if stat==0:dialog "キャンセルされました":end
picload refstr
sw=ginfo(12)
sh=ginfo(13)
title "Orginal Image size: "+sw+","+sh

buffer 1,3,3

screen 2,sw/3,sh/3
title "Default"
redraw 0
repeat sh/3
	cnt1=cnt
	repeat sw/3
		cnt2=cnt
		gsel 1
		gcopy 0,cnt2*3,cnt1*3,3,3
		clr=0
		repeat 9
			pget cnt\3,cnt/3
			clr+=(ginfo_r+ginfo_g+ginfo_b)/3
		loop
		gsel 2
		color clr/9,clr/9,clr/9
		pset cnt2,cnt1
	loop
loop
redraw 1

screen 3,sw/3,sh/3
title "ClearType"
redraw 0
repeat sh/3
	cnt1=cnt
	repeat sw/3
		cnt2=cnt
		gsel 1
		gcopy 0,cnt2*3,cnt1*3,3,3
		dim clr,3
		repeat 3
			cnt3=cnt
			repeat 3
				pget cnt3,cnt
				clr.cnt3+=(ginfo_r+ginfo_g+ginfo_b)/3
			loop
		loop
		gsel 3
		color clr.0/3,clr.1/3,clr.2/3
		;color clr.2/3,clr.1/3,clr.0/3//←きれいに表示されないときはこちらのコメントアウトを外して真上の行をコメントアウトする
		pset cnt2,cnt1
	loop
loop
redraw 1

スクリプトが開始されたときに、まずファイルオープンのダイアログが出ますのでお好きな画像を選択してください。
選択されるとすぐに縮小が開始されます。
縮小作業は画像サイズが大きいほど時間がかかります。CPU依存なので縮小なのでCPUをそれなりに食います。

スクリーン0は元画像表示用のウィンドウ、バッファー1は作業用バッファ、スクリーン2は標準の方法での縮小の表示用ウィンドウ、スクリーン3はClearTypeでの縮小の表示用ウィンドウです。

使う画像によってClearTypeの効果が出たり出なかったりします。どういった画像でよく効果が出るのかというのを考えてみるのもいいかもしれません。

雑談でも

DSiの手書き入力からこんにちは。
今この時点で手書き入力をやめてます。誤認識多すぎ…

雑談をこのブログに取り入れてみました。3日坊主になるかもしれませんが…。

とりあえずよろしくお願いします。

こんにちは

はてなブログは更新せずにダイアリーのほうでやっていこうと思っているので、一応URLだけ貼っておきます。

ゆっPの電子工作記

 

メインサイトも。

ゆっPの家

 

[追記] はてなブログに移行しました。