gcj/08


gcj

8. 数値出力

まずは数値出力を実装。

実装

使う側の見た目だけ似せて、最大の手抜きで実装する。

java/lang/System.java

package java.lang;

import java.io.*;

public class System {
	public static java.io.PrintStream out;
}

java/lang/PrintStream.java

package java.io;

public class PrintStream {
	public PrintStream(Object out) {}
	public native void print(int i);
	public native void println();
	public void println(int i) {
		print(i);
		println();
	}
}

PrintStream.cc

#include <java/io/PrintStream.h>
#include <stdio.h>

void
java::io::PrintStream::print (jint i)
{
	printf("%d", i);
}


void
java::io::PrintStream::println ()
{
	printf("\n");
}

テストコード

C++はCRT程度にだけ使うようにする。

main.cc

#include <java/lang/System.h>
#include <java/io/PrintStream.h>
#include "A.h"
#include <stddef.h>

int main() {
	::java::lang::System::out = new ::java::io::PrintStream(NULL);
	::A::main();
	return 0;
}

A.java

やりたかったのはこの部分で、今までのごちゃごちゃしたのは全部下準備。

import java.lang.*;
import java.io.*;

public class A {
	public int num1, num2;
	// (中略)今までと同じため
	public static void main() {
		A a = new A(8, 2);
		System.out.println(a.num1);
		System.out.println(a.num2);
		System.out.println(a.add());
		System.out.println(a.sub());
		System.out.println(a.mul());
		System.out.println(a.div());
	}
}

実行結果

$ ./test.exe
8
2
10
6
16
4

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

Monaで実行

stdio.h -> monapi.h とか諸々を修正。

gcj.gif

MENU

now: 5

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 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: 2502, today: 2, yesterday: 0

添付ファイル: filegcj.zip 802件 [詳細] filegcj.gif 554件 [詳細]

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

Last-modified: 2008-03-28 (金) 15:48:00 (3887d);  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.023 sec.