命名指向数据类型的单个对象/实例的指针

问题描述 投票:1回答:1

前奏......

在我工作的地方,人们说我有错误的术语或发明自己的术语。我的老板说,在团队中工作时,正确的术语非常重要。

这个问题

在C中,当我们指向任何数据类型的指针时,使用什么是正确的术语?例如,我想创建一个send()函数的宏函数,如下所示:

size_t send_stub (socket, void* , size_t);

#define send_str(sock, str) send_stub(sock, str, strlen(str))

然后它将为已知大小的数据类型创建这样的宏,如指针,字节,int16,int32,int64,数组,结构,枚举,但我想为所有这些创建一个宏函数。会叫什么?

#define send_?(sock, ?) send_stub(sock, ?, sizeof(?))
c types terminology term
1个回答
2
投票

我想我们可以在这里从C标准中脱颖而出。我将引用n1570,即C11标准草案。

3.术语,定义和符号

3.15对象 执行环境中的1个数据存储区域,其内容可以表示值 2注意引用时,对象可能被解释为具有特定类型;见6.3.2.1。

似乎就在你的小巷里。如果您假设作为宏的参数提供的令牌是一个表达式,该表达式求值为指向单个对象的指针,那么send_object似乎是合适的。

#define send_object(sock, obj_ptr) send_stub(sock, (obj_ptr), sizeof *(obj_ptr))

如果我们还假设指针是一个完整的对象类型,那么sizeof *(obj_ptr)就是该对象的大小。

© www.soinside.com 2019 - 2024. All rights reserved.