请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

io_utils.h宏定义和方法声明未实现问题

老师好, 以下问题请教:
问题1:

for (int i = 0; i < 10; ++i) {
  array[i] = i;
  PRINT_INT(array[i]);
}

这里通过宏定义打印, 最后每个被替换成了array[i], 若要实现i是动态变动的,要怎么做?
问题2:

// io_utils.h 第16行
void PrintBinary(unsigned int value);

这个似乎没有找到具体的实现,仅声明了, 但我看后面还是有调用, 不明白这里是如何工作的.

谢谢.

正在回答 回答被采纳积分+3

插入代码

1回答

bennyhuo 2025-02-17 17:32:48

问题 1:  PRINT_INT(array[i]); 这里的 array[i] 可以是任意整数, PRINT_INT 只不过是在预处理的时候做了个源码的文本替换。同学提到的 i 是动态变动的,这个可以展开说说是怎么动态变动的吗?


问题 2:在 io_utils.c 里面。h 文件里面只是提供了函数原型。


0 回复 有任何疑惑可以回复我~
  • 提问者 qq_申_0 #1
    感谢老师回复.
    
    问题2是我大意了, 还没看到后面的章节,后面有,着急了,抱歉.  
    
    问题1是 ,动态替换后, 原样打印的 array[i],  想要实现 array[0]...  就是这个i也是实际的值. 
    ```C
      array[i] = i;
      PRINT_INT(array[i]);
    // 当i=0时, 打印的是 array[i]: 0
    // 要实现i=0时,打印的是 array[0]: 0, 就是这个索引也替换了
    ```
    回复 有任何疑惑可以回复我~ 2025-02-17 17:40:58
  • bennyhuo 回复 提问者 qq_申_0 #2
    哦,就是前面拼的字符串哈。这个确实不行。。。写出来的是啥就是啥
    回复 有任何疑惑可以回复我~ 2025-02-18 21:54:14
  • bennyhuo 回复 提问者 qq_申_0 #3
    专门传一下这个i,然后格式化打印一下
    回复 有任何疑惑可以回复我~ 2025-02-18 21:54:58
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号