2013/06/15

[obc]mainはC言語形式でしか書けないっぽい

Objective-Cのソースファイルは、.m。
サンプルを見ながら作ってみよう。

#import <stdio.h>
int main(void)
{
	printf("Hell\n");
	return 0;
}

ビルドは、Mac miniをTeraTerm経由でやることにした。
まだ・・・Macに慣れていないのだよ。。。

yebisu:objc hirokuma$ gcc -o tst 1.m
yebisu:objc hirokuma$ ./tst
Hell
yebisu:objc hirokuma$ ls -l tst
-rwxr-xr-x  1 hirokuma  staff  8752 Jun 15 11:59 tst*
yebisu:objc hirokuma$ file tst
tst: Mach-O 64-bit executable x86_64

ふーん。

・・・って、これってCやん!
拡張子とimportだけやんね。。。

確か、Objective-Cのメソッドは、戻り値を括弧でくるむのよね・・・。

#import <stdio.h>
(int)main
{
	printf("Hell\n");
	return 0;
}

yebisu:objc hirokuma$ gcc -o tst 1.m
1.m:5: error: expected identifier or '(' before 'int'

うーん・・・。
じゃあ、(int)の前に+を付けて・・・、@implementationがないからと怒られるのでくるんでやって・・・、

 

あれ、Objective-Cのmainって、C言語形式でしか書けないってことか?
Javaはmainのルールがあったけど、Objective-Cは単なるCのラッパみたいな位置づけと言うことか。

 

うーむ、いっそのことずいぶんと違えばやりやすかったかもしれないが、似て非なるものってほど似てないわけでもないし。
C++から機能を削除していってくれた方が、混乱しなくてよかったなぁ(それはそれで文句を言いそうではあるが)。
ぶつぶつ。。

文句を言っても仕方がないから、覚えないかんとこだけ覚えましょうかね。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。