设置包含警卫的常规方法是什么?我通常把它们写成(例如h.h):
#ifndef _EXAMPLE_H_
#define _EXAMPLE_H_
#include "example.h"
#endif
Run Code Online (Sandbox Code Playgroud)
强调约定是否重要?当我用Google搜索时,我看到了相互矛盾的信息.是否_EXAMPLE_H_甚至有相匹配的头的名称?
在C中,将结构声明为是否存在任何有效差异
typedef struct {...} Foo;
Run Code Online (Sandbox Code Playgroud)
和
struct Foo {...};
Run Code Online (Sandbox Code Playgroud)
我知道第二个要求你使用前缀struct,但是在编写或执行程序时我会注意到这两个定义之间有什么区别?用enums怎么样?
我有嵌套的结构,我在向不同函数的内部结构赋值时遇到问题.我的结构定义为:
typedef struct {
double reading;
float readingTime;
int readingNum;
} Measurement;
typedef struct {
Measurement vref;
Measurement vout;
Measurement voutShort;
} Unit;
Run Code Online (Sandbox Code Playgroud)
在函数(measureUnit())中,我声明Unit unit;我调用takeMeasurement(unit)(为了清楚起见,我在下面简化),并尝试为内部Measurement结构中的某些值赋值:
takeMeasurement(Unit unit){
int readingNum = 42;
unit.vout.readingNum = readingNum;
}
Run Code Online (Sandbox Code Playgroud)
当我然后尝试访问printData(Unit unit)其中调用的值时measureUnit(),
`printf("%i", unit.vout.readingNum)`
Run Code Online (Sandbox Code Playgroud)
总是打印0.
这些价值不应该unit通过不同的功能"跟随" 吗?