C语言的一些符号含义、 函数含义

    xiaoxiao2023-12-06  150

    union:共用体/联合体

    union 共用体名{ 成员列表 };类似结构体,是一群变量的集合,和集合不同的是:

    共用体分配空间时,是依据内部变量中最大变量的大小分配的。 如下,double最大,需要8byte,所以分配8字节空间 union data{ int n; char ch; double f; }; 实际上,共用体只分配空间,不管空间内的任何操作 如下:根据共用体内部变量分配好空间大小,甚至可以写入未定义的变量类型 union var1{ int a; double b; }; int main() { union var1 uu; uu.a=1; char* p1; p1 = &uu; p1[0] = 'a'; p1[1] = 'b'; p1[2] = '\0'; printf("%s", &uu); return 0; }

    attribute :设置特殊属性

    attribute可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)

    union + attribute ((transparent_union)): 透明联合

    这里其实也可以是 attribute ((transparent_union)),说是为了防止重名

    透明联合相关介绍:https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Type-Attributes.html#Type-Attributes

    ##的作用:连接符

    字符数组,字符指针

    数组的变量名存放的值是数组第一个值的内存地址,所以数组名就是一个指针字符数组作用就是存放字符串的字符指针char*指向一串以00结尾的字符串所以字符指针就是字符数组,即char * == char [] //下面这样的赋值是可行的 char a[2] = "a"; char *b = a; printf("first value is :%s", b);

    char **argv == char *argv[]

    最新回复(0)