Tag: 比较

为什么比较一个无符号的Int> = 0一个“无意义的比较”?

我收到警告: Pe186“无符号int与零的无意义比较” 当我尝试编译以下代码时: for(clLoop = cpLoopStart; clLoop >= 0; clLoop–) { //Do something } 我不明白为什么。 我能理解,如果我正在寻找一个小于零的值,因为unsigned int永远不会是负数。 但我在这里寻找的是它是否等于零, unsigned int当然可以。 我甚至可以看到这个错误,如果在这个循环中我试图预先减少而不是后减量,但是情况并非如此。

如何比较IPv6大于/小于C

使用inet_pton转换IPv4以比较它是否在IPv4范围内非常简单。 但是,我不确定如何使用inet_pton和in6_addr ,看看它是否比另一个IP更少/更大。 这就是我的想法: #include … const char *ip6str = “0:0:0:0:0:ffff:c0a8:3”; const char *first = “0:0:0:0:0:ffff:c0a8:1”; const char *last = “0:0:0:0:0:ffff:c0a8:5”; struct in6_addr result, resfirst, restlast; uint8_t ipv6[16]; // perhaps to hold the result? inet_pton(AF_INET6, first, &resfirst); inet_pton(AF_INET6, last, &reslast); inet_pton(AF_INET6, ip6str, &result); //assuming inet_pton succeed if(result.s6_addr >= resfirst.s6_addr && result.s6_addr <= reslast.s6_addr) //within range

0.7不小于0.7但错误的结果被打印

这里’a’应打印为0.7 <0.7为假,但打印'c'。 #include void main() { float a=0.7; if(a<0.7) printf("c"); else printf("a"); }

String Comparsion:Arduino C.

我正在开发基于Web的家庭自动化系统,所以我的arduino向服务器发送请求并在串行监视器中获得以下响应,以及“loneOn”,这是由于Serial.println(r); 声明。 HTTP/1.1 200 OK Date: Mon, 13 Oct 2014 17:46:03 GMT Server: Apache/2.4.4 (Win32) PHP/5.4.16 X-Powered-By: PHP/5.4.16 Content-Length: 14 Content-Type: text/html loneOn.ltwoOn. loneOn 在另一种情况下,来自服务器的响应将具有loneOff,而不是loneOn,我需要确定它究竟是哪一个。 但这不是现在的重点,我在比较字符串时遇到了麻烦。(响应会在串行监视器中循环,但同样,这不是重点。)这是arduino的代码, #include #include #include #include #include #include #include #include #include #include #include byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte server[] = { 192,168,137,1 } ; […]

如何比较存储在数组中的字符串与c中完整库中的函数名称

在c中输入字符串并将其存储在例如char s [100]之后,如何将该字符串与math.h中的所有函数名称进行比较? 例如,我输入pow,结果将以存储的forms显示。 s[0]=’p’ s[1]=’o’ s[2]=’w’ s[3]=’\0′ 由于我的字符串相当于pow(),我希望我的程序能够识别它,然后在执行程序时调用pow()。 我知道在代码中进行字符串比较并不困难,但这意味着我必须对库中的每个函数名进行字符串比较。 我不想那样做。 如何在不对每次比较进行硬编码的情况下将我的字符串与库中的所有名称进行比较? 谢谢 :)

用于频繁随机访问的数组或链表?

我经常使用列表和数组,我想知道什么是更快,数组或列表? 假设我们有整数数组和链表,两者都有相同的值。 int array_data[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; typedef struct node_data{ int data; struct node_data * next; } list_data; ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ list_data *d = -> | 1| -> | 2| -> | 3| -> | 4| -> | 5| -> […]

C重复字符,逐个字符

我试图找到彼此跟随的两个字符是否是相同的字符。 即如果我有这个输入“老女人”我想打印第二个D“复制”旁边。 这是我的代码,但我无法找到如何进行此编码。 这是我的代码: void main() { char ch,ch2; ch = getchar(); // getting the line of text int i = 1; ch2 = ch; while (ch != ‘\n’) // the loop will close if nothing entered { if (ch == ch2[&i]) { printf(“%c-duplicate”, ch); } i++; if (ch == ‘A’ || ch == ‘E’ […]

比较int与long和其他

我想知道这样的事情: int a = …; long b = …; if (a < b) doSomethings(); 总是有效(除了未签名) 我只是测试了几个值,但我想确定。 我认为在比较中投了很长时间,其他类型呢?

C字符串的比较运算符

我在查找比较C字符串的信息时遇到了一些困难。 我明白,与C ++不同,C不支持运算符重载,所以我想知道是否有办法检查一个字符串是否大于/小于另一个(例如str1> str2)? 提前感谢您的回复。 老实说,这是我实际上不得不问一个问题的第一次,因为我找不到相关的post。

仅使用按位运算在C中实现更大的等号

我知道许多基本操作(如加法或除法)也可以仅使用按位运算符在C中实现。 如何使用大于或等号(> =)来做同样的事情? if (x >= 0) { … }