avatar
i*n
1
此票hold 24小时。有意者请与我联系。608-3203974
avatar
h*0
2
父母在国内,昨天打电话回去,老爸最近又痛风了,之前也发作过。请教版上的医生这
种病在美国有没有什么药可以治疗,需要处方吗?谢谢!
avatar
j*5
3
现在有这个2个学校的AD,诚心请教各位前辈,UMBC和SFSU哪个学校更好一些啊?
谢谢各位帮忙
avatar
k*t
4
【 以下文字转载自 CS 讨论区 】
发信人: kermit (kk), 信区: CS
标 题: 请教怎么用#define实现如下的功能
发信站: BBS 未名空间站 (Thu Mar 22 20:10:19 2012, 美东)
给一个字符串,让他转成如下的格式:
比如 #define transfer(A) ........
我这样调用的时候
transfer(“abc”)
能得到如下的东西:
'a','0','b','0','c','0'
avatar
D*6
5
我住ASU附近,已买了Becker备考下半年CPA。如果哪位愿意share资料并一起讨论学习
,请Email: w*************[email protected]
avatar
i*y
6
少小离家老大回,
乡音无改鬓毛衰。
儿童相见不相识,
笑问客从何处来。
是我此刻的感觉。:)
avatar
g*j
7
The only medicine that does not need prescription are pain killers during
acute attack, such as Tylenol and NSAIDs (ie Naproxen, Ibuprofen).
Major treatment for gout in acute phase include: NSAIDs, colchicine,
corticosteroid, for long term treatment include: allopurinol, probenecid.
All of them need prescription.
avatar
d*e
8
SFSU
除非你想跟老黑混... ...

【在 j********5 的大作中提到】
: 现在有这个2个学校的AD,诚心请教各位前辈,UMBC和SFSU哪个学校更好一些啊?
: 谢谢各位帮忙

avatar
h*s
9
好神奇 坐等大牛解答

【在 k****t 的大作中提到】
: 【 以下文字转载自 CS 讨论区 】
: 发信人: kermit (kk), 信区: CS
: 标 题: 请教怎么用#define实现如下的功能
: 发信站: BBS 未名空间站 (Thu Mar 22 20:10:19 2012, 美东)
: 给一个字符串,让他转成如下的格式:
: 比如 #define transfer(A) ........
: 我这样调用的时候
: transfer(“abc”)
: 能得到如下的东西:
: 'a','0','b','0','c','0'

avatar
i*y
10
少小离家老大回,
乡音无改鬓毛衰。
儿童相见不相识,
笑问客从何处来。
是我此刻的感觉。:)
avatar
j*5
11
谢谢楼上的回复。
但是感觉UMBC城市消费低好多,但是不知道就业怎么样?
有知道的前辈吗? 谢谢啦
avatar
d*n
12
I am not sure what you need.
but by my understand ~
#include
#include
#include
#define transfer(x) ({char *tmp=(x); \
int i,sz=strlen(tmp);\
char *ret=(char *)malloc(sizeof(char)*sz*2);\
for(i=0;iret[2*i]=tmp[i];\
ret[2*i+1]='\0';\
}\
ret;})
int main(){
char *t;
t=transfer("abc") ;
int i;
for(i=0;i<6;++i) putchar(t[i]);
free(t);
}
avatar
w*8
13
即我09年左右拜读您的文章已经快十年了……
avatar
k*t
14
呵呵,你这个很强。
不过我很好奇的就是这个define会占instruction code的size吗?
我的想法很简单:就是简单,不容易出错,代码的size不增加。。。
比如
#include 。。。。
#define transfer(x) 。。。。
const unsigned char StrA1[] = {0xb,0xc,transfer("ABC")};
const unsigned char StrA2[] = {0xd,0xe,transfer("abcdedfg");
const unsigned char StrA3[] = {0xf,0x10,transfer("test signal");
....

【在 d****n 的大作中提到】
: I am not sure what you need.
: but by my understand ~
: #include
: #include
: #include
: #define transfer(x) ({char *tmp=(x); \
: int i,sz=strlen(tmp);\
: char *ret=(char *)malloc(sizeof(char)*sz*2);\
: for(i=0;i: ret[2*i]=tmp[i];\

avatar
s*t
15
Ironny是不是可以写第二个十年了?期待...
avatar
k*t
16
你这个编译有错~~~
说syntex error。
应该是这个define有问题

I am not sure what you need.
but by my understand ~
#include
#include
#include
#define transfer(x) ({char *tmp=(x); \
int i,sz=strlen(tmp);\
char *ret=(char *)malloc(sizeof(char)*sz*2);\
for(i=0;iret[2*i]=tmp[i];\
ret[2*i+1]='\0';\
}\
ret;})
int main(){
char *t;
t=transfer("abc") ;
int i;
for(i=0;i<6;++i) putchar(t[i]);
free(t);
}

【在 d****n 的大作中提到】
: I am not sure what you need.
: but by my understand ~
: #include
: #include
: #include
: #define transfer(x) ({char *tmp=(x); \
: int i,sz=strlen(tmp);\
: char *ret=(char *)malloc(sizeof(char)*sz*2);\
: for(i=0;i: ret[2*i]=tmp[i];\

avatar
d*m
17
我也依稀记得读过楼主的大作
avatar
d*n
18
you sure?
and no spaces after back slash?

【在 k****t 的大作中提到】
: 你这个编译有错~~~
: 说syntex error。
: 应该是这个define有问题
:
: I am not sure what you need.
: but by my understand ~
: #include
: #include
: #include
: #define transfer(x) ({char *tmp=(x); \

avatar
d*n
19
Try this.
Fill as many char size as you could reach
//file define.c
//transfer must be put at the end of array if overrun index
// and you dont want to calculate the size.
// precisely use trans(x, n) macro
//if you really assign a large char array, then take my first approach.
#include
#include
//unsafe but ok
#define transfer(x) trans(x, 10)
#define trans(x, n) trans##n(x), #x[n]
#define trans10(x) trans9(x), #x[9]
#define trans9(x) trans8(x), #x[8]
#define trans8(x) trans7(x), #x[7]
#define trans7(x) trans6(x), #x[6]
#define trans6(x) trans5(x), #x[5]
#define trans5(x) trans4(x), #x[4]
#define trans4(x) trans3(x), #x[3]
#define trans3(x) trans2(x), #x[2]
#define trans2(x) trans1(x), #x[1]
#define trans1(x) #x[0]
int main(){
int n=7;
char a[]={trans(Hello,4) , transfer(kermit) , '\0' } ;
n=strlen(a);
int i ;
printf("sz %d\n",n);
for(i=0;iprintf("%c ",a[i]);
}
printf("\n");
}
avatar
k*t
20
sure!
我直接用你的define code编译的。还特意在\后回车到下一行,以确保\后面没有空格。
编译错都是指向t=transfer("abc"),这一行。说syntax error,missing ')' before '
}';

【在 d****n 的大作中提到】
: you sure?
: and no spaces after back slash?

avatar
d*n
21
你确定没粘错代码?
macro 中间没有空行?
最后一行没有 \
没有comments 插入
我都是编译过了才贴上来的。
把你的代码贴回来,gcc version ?
另外。
strcat(a,"hello kermit");
will do your work.

格。
'

【在 k****t 的大作中提到】
: sure!
: 我直接用你的define code编译的。还特意在\后回车到下一行,以确保\后面没有空格。
: 编译错都是指向t=transfer("abc"),这一行。说syntax error,missing ')' before '
: }';

avatar
k*t
22
你这是可以运行,但是没有达到我的要求:
我希望是这样的:
比如
char t[]={trans(hello,4)} 的结果是这样的char t[]={'h','\0','e','\0','l','
\0','l','\0','o','\0'},这样size是double的,但是你的运行的结果是:
char t[] = {'h','e','l','l','o'},size只有5.
我后来试验了在后面直接加'\0'就可以了。
比如:
#define trans1(x) #x[0],'\0'
多谢~~~
包子送上~~~~

【在 d****n 的大作中提到】
: Try this.
: Fill as many char size as you could reach
: //file define.c
: //transfer must be put at the end of array if overrun index
: // and you dont want to calculate the size.
: // precisely use trans(x, n) macro
: //if you really assign a large char array, then take my first approach.
: #include
: #include
: //unsafe but ok

avatar
d*n
23
趁被大牛骂之前,谢谢你的包子。
代码有风险,编程请小心。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。