小编Ger*_*col的帖子

C功能解析顺序

我正在用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.

我确实意识到这种方法有一些缺点,但是我必须将这个转换例程应用到很多现有代码中,所以越简单越好(我不想乱用释放内存).

我的问题是:

  1. 是否以相反顺序解析函数(当它们作为参数传递给其他函数时)是C标准的一部分.
  2. 有一个更好的方法吗?

c function

4
推荐指数
1
解决办法
171
查看次数

标签 统计

c ×1

function ×1