我正在用C编写非破坏性转换例程,我刚刚意识到(至少在Visual C++中)函数是以相反的顺序解析的.
所以:
main()
{
char* psString[] = { "Hello", "World", "World2", "World3" };
printf("%s - %s - %s - %s\n",
H2A_N(psString[0]),
H2A_N(psString[1]),
H2A_N(psString[2]),
H2A_0(psString[3]));
return 1;
};
Run Code Online (Sandbox Code Playgroud)
我的代码不是可重入的,只能在一个线程中运行,因此我将使用静态字符数组来存储结果.
我的计划是有一个函数H2A_0,它将输出写入缓冲区的开头,并留下下一个地址,以便后续调用H2A_N.
我确实意识到这种方法有一些缺点,但是我必须将这个转换例程应用到很多现有代码中,所以越简单越好(我不想乱用释放内存).
我的问题是: