Solaris 64 ビット 開発ガイド

プログラミング例

次に示すプログラミング例 foo.c では、LP64 と ILP32 のデータ型モデルの効果を直接的に示しています。同じプログラムを 32 ビットまたは 64 ビットプログラムとしてコンパイルすることができます。


#include <stdio.h>
int
main(int argc, char *argv[])
{
		(void) printf("char is ¥t¥t%lu bytes¥n", sizeof (char));
		(void) printf("short is ¥t%lu bytes¥n", sizeof (short));
		(void) printf("int is ¥t¥t%lu bytes¥n", sizeof (int));
		(void) printf("long is ¥t¥t%lu bytes¥n", sizeof (long));
		(void) printf("long long is ¥t¥t%lu bytes¥n", sizeof (long long));
		(void) printf("pointer is ¥t%lu bytes¥n", sizeof (void *));
		return (0);
} 

32 ビットコンパイルの結果は、次のようになります。


% cc -O -o foo32 foo.c
% foo32 
char is          1 bytes
short is         2 bytes
int is           4 bytes
long is          4 bytes
long long is     8 bytes
pointer is       4 bytes   

64 ビットコンパイルの結果は、次のようになります。


% cc -xarch=v9 -O -o foo64 foo.c 
% foo64
char is          1 bytes
short is         2 bytes
int is           4 bytes
long is          8 bytes
long long is     8 bytes 
pointer is       8 bytes

注 -

デフォルトのコンパイル環境は、移植性を最大限にするように設計されているため、32 ビットのアプリケーションを作成します。