gcj/09


gcj

9. 文字列出力

とりあえず出力だけを目標にして、文字列処理は後回し。

A.java

public class A {
	public static void main() {
		System.out.println("Hello, World!");
	}
}

java/lang/String.java

package java.lang;

public class String {
}

java/io/PrintStream.java(追加)

	public native void print(String s);
	public void println(String s) {
		print(s);
		println();
	}

PrintStream.cc(追加)

void java::io::PrintStream::print(::java::lang::String* s) {
	printf("String");
}

実行結果

$ ./test.exe
String

Stringの内部構造を調査

さて、どうやって表示しようか・・・

A.sの調査

PrintStream.cc(修正)

typedef struct {
	short hash, length;
	const char data[];
} __jstring;

void java::io::PrintStream::print(::java::lang::String* s) {
	printf("%s", ((__jstring*)s)->data);
}

実行結果

やっと初歩の初歩が動いた・・・

$ ./test.exe
Hello, World!

ここまでの作業結果: file09.zip

MENU

now: 2

リンク


最新の20件
2018-05-03 2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 2414, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:00 (3794d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.038 sec.