高级会员
- 积分
- 647
- 金钱
- 647
- 注册时间
- 2014-4-29
- 在线时间
- 299 小时
|
楼主 |
发表于 2016-10-27 11:33:44
|
显示全部楼层
我明白你说的入队的输入参数格式。但是我说的是另外的问题。
我想送入队列的内容就是指针啊。而函数的输入参数是个二级指针。
比如说你想打印一些dubug信息。
“negative parameter”
“divide zero”
“interlock”
对这些长度未知的常量字符串,当然是应该把指针而不是字符串本体入队啊,而入队时的输入参数应该是个指向字符串指针的二级指针。 否则你建立队列的时候用多大的宽度呢?
但是对于附带额外的未知个数的参数的debug信息,就没什么好办法了。
比如printf(“channel %d value overflow”,ch);
在使用之前,既不知道有几个参数,也不知道它们是什么类型的,创建队列的时候就没法确定队列的宽度。
至于你说的用sprintf处理。1.处理过的字符串仍然在栈区(如果真放到堆区就没法再多任务环境用了),不能直接传递指针 。2.长度未知,队列宽度不明。不过就算字符串长度能确定,太长的字符串也没有直接拷贝的道理。 |
|