我正在为C编写一个Unicode库作为个人练习。如果没有实际的代码,我有这样的:自动传递参数在C参考
typedef struct string {
unsigned long length;
unsigned *data;
} string;
// really simple stuff
string *upush(string *s, unsigned c) { ... }
// UTF-8 conversion
string *ctou(char *old) { ... }
char *utoc(string *old) { ... }
upush
推动全Unicode代码点c
到的s
末,根据需要重新分配。
我可以使用类这样的,例如:
string a;
upush(&a, 0x44);
puts(utoc(&a));
而不必使用&
到参考传递给函数的,有一种方法可以写出这样我可以拨打:
string a;
upush(a, 0x44);
puts(utoc(a));
或者,你认为这只是最好的typedef string
为struct string
指针,而不是结构本身,始终与struct string
指针处理?
解决方法?由于Dummy00001,这是我现在的图书馆的一般轮廓:
typedef struct string {
unsigned long length;
unsigned *data;
} string;
// really simple stuff
string *upush(string *s, unsigned c) { ... }
// UTF-8 conversions
string ctou(char *old) { ... }
char *utoc(string old) { ... }
下面是一些例子:++
string a = ctou("Hello, world");
upush(&a, '!');
puts(utoc(a));
我也学习,感谢Doches,在C(这是我会写这个库中的包装),你可以写原型这样做隐含传递按引用:
string *upush(string &s, unsigned c);
对于那些有兴趣谁,这是我不断取得的进展:http://delan.ath.cx/ulib
好运气的运动,unicode是非常困难的得到正确。 – 2010-09-24 09:46:25
助手宏怎么样? #define upush(a,b)upush(&a,b) – Nyan 2010-09-24 10:04:52
呃,这似乎有点'hackish'。 – 2010-09-24 10:11:13