我正在为Pebble平台开发一个项目。应用程序是用C编写的,我的问题不是特定于该平台的。结构比较
Pebble API有一个名为PblTm的Struct,每秒由一行代码填充。我的目标是比较结构和当前时间。我创建了PblTm结构,并将它们填充到需要与之比较的时代。我只关心结构的小时和分钟部分。到目前为止,我有以下代码。
bool comp_time(int h1, int m1, int h2, int m2, int h3, int m3) {
if((h1<=h2) && (h2<=h3)) //Is start hour <= now hour <= end hour?
{
if((h1=h2) && (m2>=m1)) //If start hour = now hour, is now min >= start min ?
{
return true;
}
if((h2=h3) && (m2<=m3)) //If end hour = now hour, if now min <= end min?
{
return true;
}
if((h1>h2) && (h2<h3)) //If start hour < now hour < end hour?
{
return true;
}
}
else
{
return false;
}
return false;
}
我最初想自己养活结构作为参数传递给函数是这样的:
然后引用的函数内部结构的元素,我永远无法得到那个编译,我无法找到关于它的信息。 (我可能没有搜索正确的术语)。
我则改为饲养int参数函数本身是这样的:
comp_time(first_start.tm_hour,first_start.tm_min,now.tm_hour,now.tm_min,first_end.tm_hour,first_end.tm_min)
这是做的相当笨拙的方式,但我已经做的工作输入这一切了。然而,我的主要问题是比较功能不起作用。它返回(显然是随机的,我还没有找到一个模式)对于不适合的值是真的,对于那些适合的值是错误的。
你有什么想法吗?
您的比较不起作用,因为您使用单个等于'='而不是double等于'=='来检查相等性。这将需要一个实际的答案来解释为什么你的函数调用不起作用。 – Xymostech
@Xymostech谢谢!我不知道我怎么没有接受。 –