嵌入式基础– The difference of ‘ ‘ and ” “

嵌入式软件开发人员通常与低级传感器交互,并且对如何使用带符号和无符号类型有很好的了解,但是在字符串和字符类型方面,许多开发人员很容易感到困惑。以使用为例‘v’ and “v”在定义中或作为函数参数。许多开发人员可以互换使用它们,但是它们之间存在细微而重要的区别。

charconst

指某东西的用途‘ ‘定义char类型的字符常量。字符常量可用于修改字符串中的单个字符或在其他用途​​中定义ASCII字符。例如,开发人员可能会定义ASCII字符进行比较,如下所示:

如果(数据==‘v’)

{

//做一些有趣的事情

}

指某东西的用途” ”另一方面,它定义了一个指向字符串的指针。毫无疑问,指针将使用整数的内存来存储指针,该内存可能为2或4个字节。除了使用指针内存之外,定义的字符串还将占用足够的内存以包含字符和NULL(\ n)字符串终止符。请记住,在C中,字符串是char数组。

开发人员可能会感到困惑的一个简单示例是将字符串作为参数传递给函数时,反之亦然。例如,当使用printf时,以下内容将导致类型错误

printf(‘\n’);

printf期望指针不是常量char。

真正的区别‘ ‘ and ” ”归结为以下事实‘ ‘定义一个字符常量,而” ”将定义指向字符串的指针,该指针实际上是指向数组的指针。差异虽然很细微,但却使两者无法互换使用。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.