http://www.ultimatepp.org
最近這個 gui 的 library 感覺愈做愈好了,
我會喜歡的原因主要是因為,他的程式庫很小,
不過有時對各種字元編碼的支援還不夠完善,
編譯他的範例程式時,少部份會出現ERROR都是因為這個問題,
之前也是因為這個問題才沒用它的。
而且我很喜歡他的一個範例程式叫EyeCare,
功能就是每N分鐘叫你起來休息M分鐘,對我來說實在很不錯^^
心情不好時來加個音效的小功能好了。
不過它到處加 using namespace Upp; 實在讓人高興不起來。
啊對了,open watcom 1.9 在去年六月出來的樣子= =
跟code block整合的還不錯,之前一直不能hello的world也可以了,
但他自帶的ide實在是爛到不行。
啊,不過不能debug,所以只能在release的時候使用,
而且有個很奇怪的地方,就是
使用
#include <cstdio>
時要用
std::printf
用
#include <stdio.h>
時,才可以不用std
直接
printf
超怪的啦~~
不過他的程式碼真的是超小的,但不接受很猛的template寫法,
以下面程式碼為例,時間是執行多次後取最短時間。
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
class A; // class A 的標題
class B
{
public:
A *a;
int v;
};
class A
{
public:
B b;
int c;
};
int main()
{
A x;
x.c = 1;
x.b.v = 2;
x.b.a = new A;
x.b.a->c=3;
x.b.a->b.v=4;
std::cout << "x.c= " << x.c;
std::cout << "; x.b.v= " << x.b.v << std::endl;
std::cout << "x.b.a->c= " << x.b.a->c;
std::cout << "; x.b.a->b.v= " << x.b.a->b.v << std::endl;
printf("hello world!\n");
printf("%d %c %f\n", 1, '2', 3.0);
int r = rand();
for (int i=0;i<100000000;i++)
r = rand();
std::cout << "rand= " << r;
}
以下結果為在codeblock ide下測試,只能當參考,不代表實際速度。
不過我想說watcom 在rand()不知道動了什麼手腳怎麼跑那麼快,下次在多執行緒測看看它們的stl安不安全。
vc2008 release 結果 127kb
x.c= 1; x.b.v= 2
x.b.a->c= 3; x.b.a->b.v= 4
hello world!
1 2 3.000000
rand= 30799
Process returned 0 (0x0) execution time : 2.040 s
mingw gcc 4.4.1 release 結果 458kb
x.c= 1; x.b.v= 2
x.b.a->c= 3; x.b.a->b.v= 4
hello world!
1 2 3.000000
rand= 30799
Process returned 0 (0x0) execution time : 1.380 s
watcom 1.9 release 結果 57kb
x.c= 1; x.b.v= 2
x.b.a->c= 3; x.b.a->b.v= 4
hello world!
1 2 3.000000
rand= 12298
Process returned 0 (0x0) execution time : 0.393 s
留言列表