第一坑:printf之后的参数列表居然不能用函数返回!!!错位示范:
void fun()
{
.....
}
printf("%d",fun());
为什么这样子在printf之后的参数列表中放入函数的返回值居然不行!!!????
解决方法:曲线救国
x = fun();
printf("%d",x);
上面只是一个抽象,下面才是具体遇到的问题,主要就是find_cause()函数的返回 ,没法打印
string find_cause(int cause)
{
string cause_;
if (cause == 1) cause_ = "被信号量s1阻塞";
else if (cause == 2)cause_ = "被信号量s2阻塞";
else cause_ = "未被阻塞";
return cause_;
}
void choice(pcb* exe)
{
string pcb_name, state_,cause_;
if (exe->pcb_id == 0) pcb_name = "生产者"; else pcb_name = "消费者";
state_ = state_array[exe->state];
printf("调度的进程为:%s进程 状态:%s 等待原因:%s 断点:%d",
pcb_name.c_str(), state_.c_str(),find_cause(exe->cause).c_str(), exe->point);
}
如果还有人遇到了可以借鉴一下,如果有人知道为什么的话也方便在评论里面教授一下,最近为了打算法,又重新来学c++,记录一下c++里面的坑,以后不定期更新