极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15083|回复: 6

arduino 的编程语言到底算啥? 类 c 语言?

[复制链接]
发表于 2013-9-10 20:11:19 | 显示全部楼层 |阅读模式
处理字符串的时候遇到疑惑,本来是想判断两个字符串是否相等, 常见语言的 str1 == str2 行不通。查找的时候发现可以使用叫 String 的 类/结构?


按照 c 风格的 strcmp 去使用发现是可以的, c 好像使用该函数还要包含 string.h ,  arduino 就不需要。

在 wiki 里搜了下 strcmp , 发现倒是有调用的, 但是没有这个函数的相关说明。 那类似这样的函数, arduino 支持多少? 是个啥规律哈?

回复

使用道具 举报

发表于 2013-9-10 20:58:41 | 显示全部楼层
用 String 类的 equals 方法啊

近来都很少写代码,好像记得是这样的,如果说得不对,希望有人帮我解释一下

字符串在用 == 号比较的时候,String变量所指的是字符串所在的首地址,比较的话就是比较首地址了
虽然内容相同,但如果两个字符串存放在不同的地方,变量所指的是不同的地址,就算内容一样,==号的结果还是  0

就像把 “一” 字写到本子第一行和第二行,虽然内容是一样的,但用 == 去比,比的是第一行的第一个格和第二行的第一个格,一个是第一行,一个是第二行,不一样....不是比内容....

http://arduino.cc/en/Reference/StringEquals  这是这个方法的说明

http://arduino.cc/en/Reference/HomePage  这里有官方的说明文档啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-10 21:06:27 | 显示全部楼层
laofuz1024 发表于 2013-9-10 20:58
用 String 类的 equals 方法啊

近来都很少写代码,好像记得是这样的,如果说得不对,希望有人帮我解释一 ...

多谢,
String 的使用倒是查到了。字符串的比较我理解就是 C 指针那套的。

注意我分段写了,第三段说的"类似函数"是说 strcmp 类似的函数哈,你发的俩链接里没有 strcmp 类似函数的使用说明。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-10 21:07:11 | 显示全部楼层
laofuz1024 发表于 2013-9-10 20:58
用 String 类的 equals 方法啊

近来都很少写代码,好像记得是这样的,如果说得不对,希望有人帮我解释一 ...

对了,  arduino.cc 里搜索也找不到 strcmp 的相关信息。
回复 支持 反对

使用道具 举报

发表于 2013-9-10 21:53:21 | 显示全部楼层
在开发工具的库里可能有哟...
回复 支持 反对

使用道具 举报

发表于 2013-9-11 14:13:37 | 显示全部楼层
hick 发表于 2013-9-10 21:07
对了,  arduino.cc 里搜索也找不到 strcmp 的相关信息。

请到hardware\arduino\cores\arduino 找就是了。他有个定义好的WString.cpp类,里面就引用了 #include <string.h>
然后又在主函数库里引用这个WString.h
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-11 14:34:04 | 显示全部楼层
wyd1520 发表于 2013-9-11 14:13
请到hardware\arduino\cores\arduino 找就是了。他有个定义好的WString.cpp类,里面就引用了 #include
...

3x 嘿嘿

虽然那个目录里仍然没有找到 strcmp 的定义, 不过看得出来就是就是因为 string.h 被包含 strcmp 才可用, 所以类 strcmp 函数就是 string.h 中定义的函数了。 也能找到其他类似库函数头文件了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 18:01 , Processed in 0.035741 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表