Tag: 变量

我的处理器上C中的int,short和其他数据类型的范围?

我正在读一本旧的C书,据此而言 int范围值从-32768到+32767。 如果我的机器可以容纳比该限制更大的int,我如何找到特定于我的机器的这些数据类型(short,int,long,double,float)的范围? 那有什么方法吗?

通常接受的变量名称格式 – C / C ++

我意识到这可能是一个偏好问题,但我注意到我见过的很多代码示例中的变量名称都有g_ , s_ , m_或_的前缀。 这是一种普遍接受的做法,这些前缀是什么意思? 还有其他人会很高兴知道吗?

在C和Labview之间共享一个变量?

允许C代码定期访问从单独的Labview程序生成的整数的瞬时值的最佳方法是什么? 我有时间关键的C代码控制科学实验并每20ms记录一次数据。 我还有一些labview代码可以操作不同的仪器并输出100ms的整数值。 我希望我的C代码能够记录labview的值。 做这个的最好方式是什么? 一个想法是让Labview在循环中将整数写入文件,并让C代码在循环中读取文件的值。 (如果需要,我可以在我的C代码中添加第二个线程。)Labview也可以链接到C dll。 所以我可以在C中编写一个DLL,以某种方式促进两个程序之间的共享。 这是可取的吗? 我该怎么办?

变量在switch语句中声明和初始化

为什么这个程序不输出20? #include int main() { int a = 1; switch (a) { int b = 20; case 1: { printf(“b is %d\n”, b); break; } default: { printf(“b is %d\n”, b); break; } } return 0; }

函数中使用的内存何时变为空闲?(C编程)

以下是代码 代码: #include int * num(void); int main(void) { int * num2; num2 =num(); printf(“%d\n” , *num2); return 0; } int * num(void) { int num = 20; return # } 问题: 我们知道,函数num是函数num()本地函数,所以在这段代码中我尝试将函数中变量num的地址返回给调用它的函数,即main() 。 之后我只使用解除引用运算符来提取特定num变量的值并将其打印在main()函数中。 有一点我很困惑。 我记得我读过一本关于javascript的书,提到变量生命周期在函数内,这意味着在函数完成执行其指令并将控制权传递给调用它的函数之后,函数中每个变量的值将是干净的out(垃圾收集器)。但为什么在这段代码中我的main()函数仍然可以指向特定内存地址的值?

如何在内存中存储分子?

我想将分子存储在记忆中。 这些可以是简单的分子: Methane (CH4) CH bond-length: 108.7 pm HH angle: 109 degrees 但也有更复杂的分子,如扑热息痛(C8H9NO2): 如何将分子存储在内存中,包括所有键长和角度? 将atom-structs存储在数组中的好主意? 或者,还有更好的方法?

doxygen一次注释多个变量

如果我有以下内容: /** * @brief (x,y,z) points for block */ int x, y, z; 它只会生成x的文档,是否可以在doxygen中使用一条注释对所有x,y和z进行注释? 编辑按照envu的建议我现在有以下内容(基于http://www.stack.nl/~dimitri/doxygen/grouping.html#memgroup ) //@{ /** some documentation here */ int x, y, z; //@} 要么 //@{ /** * @brief some documentation here */ int x, y, z; //@} 然而,这两个仍然只记录x。 尝试使用不同的表单我还没有得到相同的文档字符串来跨越多个变量

为什么函数可以通过malloc返回数组设置,但不能通过“int cat = {0,0,0};”返回一个设置。

为什么我可以通过malloc从函数返回数组设置: int *dog = (int*)malloc(n * sizeof(int)); 但不是由数组设置 int cat[3] = {0,0,0}; 返回“cat []”数组并显示警告。 感谢你的帮助

如何将位从一个变量复制到另一个变量?

假设我有这个int变量v1 : 1100 1010 而这个变量int v2 : 1001 1110 我需要将v2的最后四位复制到v1的最后四位,以便结果为: 1100 1110 ^ ^ last four bits of v2 | | first four bits of v1 我如何在C或C ++中做到这一点? 我阅读了一些关于按位操作的文章,但我找不到任何具体的信息。

不使用#define的全局常量

好吧,我正在寻找一组内存地址作为.h文件中的常量,这些常量由一堆.c文件使用(我们在C中,而不是C ++)。 我希望能够看到变量的名称 ,而不是只看到调试器中的hex地址…所以我想将我当前拥有的#defines转换为全局范围的常量。 问题是,如果我这样定义它们: const short int SOME_ADDRESS = 0x0010 然后我得到了可怕的“多声明”错误,因为我有多个.c文件使用相同的.h。 我想使用枚举,但是这不起作用,因为它默认为整数(在我的系统上是16位……我需要对类型有更好的控制)。 我想把所有的地址都放在一个结构中…但我没有办法(我知道)在头文件中设置结构实例的默认值(我不想假设一个特定的.c文件首先使用结构并在其他地方填充它。我真的想在.h文件中定义常量) 我开始时看起来很简单,但是我没有看到在头文件中定义全局可用的short int常量的好方法……任何人都知道这样做的方法吗? 谢谢!