Ult*_*ior 3 c standards coding-style
使用typedef声明结构
typedef struct some_struct {
int someValue;
} *pSomeStruct;
Run Code Online (Sandbox Code Playgroud)
然后使用const声明将其作为参数传递给某个函数,暗示'const some_struct*var'
void someFunction1( const pSomeStruct var )
Run Code Online (Sandbox Code Playgroud)
结果变成了
some_struct * const var
Run Code Online (Sandbox Code Playgroud)
这也在ISO C标准的第6.7.5.1节中说明,该标准指出在这种情况下'const'适用于指针而不适用于它指向的数据.
所以问题是 - 有没有办法用typedef用shortended符号声明一个const结构的指针,或者必须总是有一个特殊的单独声明:
typedef const struct some_struct *pcSomeStruct;
void someFunction2( pcSomeStruct var )
Run Code Online (Sandbox Code Playgroud)
基本上,不要typedef指针:)
typedef struct some_struct {} some_struct;
void some_function1(some_struct *var);
void some_function2(const some_struct *var);
void some_function3(some_struct *const var);
void some_function4(const some_struct *const var);
Run Code Online (Sandbox Code Playgroud)
或者,根本不要输入def:D
struct some_struct {};
void some_function1(struct some_struct *var);
void some_function2(const struct some_struct *var);
void some_function3(struct some_struct *const var);
void some_function4(const struct some_struct *const var);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4411 次 |
最近记录: |