wayne 发表于 2011-7-8 00:47:32

C/C++里的无名

无名,空,匿名,零,都是很有趣的东西。
我刚才在看书,感觉可以整理出很多东西来,
大家想到什么就说什么,最好还解释一下其存在的价值。

期望到时候能整理出一个比较完整的关于C/C++语言里 一些无名现象的全集来

wayne 发表于 2011-7-8 00:50:25

我来抛个砖头:
匿名枚举:enum { value = 1 , value2 };enum {C,L,O,V,E,R,U,S,I,T};摘自:http://bbs.emath.ac.cn/thread-2606-1-1.html

wayne 发表于 2011-7-8 21:10:10

无名对象:#include<iostream>
#include<complex>
int main(){
std::cout<<std::complex<double>(2,3);
}

wayne 发表于 2011-7-8 21:12:05

do{
}while(0)

G-Spider 发表于 2011-7-8 21:40:20

也来一个,比如结构体的大小。#include <stdio.h>

typedef struct{       
        charc;
        int   d;
        short t;
}STR;

int main()
{
        STR a;
        printf("%d\n",sizeof(a));
        return 0;
}

wayne 发表于 2011-7-8 23:28:51

5# G-Spider
size 为 7,:D :#include <stdio.h>
typedef struct{      
      charc;
      int   d;
      short t;
}__attribute__((__packed__)) STR;

int main()
{
      STR a={.c='2',.t=123};               
      printf("size=%d\n%d\t%d\t%hd\n",sizeof a,a.c,a.d,a.t);
      return 0;
}

mathe 发表于 2011-7-9 08:40:59

通常更加好的定义方法是:
typedef struct{      
      charc;
       short t;
       int   d;
}STR;

kenmark 发表于 2011-11-8 23:15:55

struct aaa{
int cnt;
int array;
};

kenmark 发表于 2011-11-8 23:16:54

struct bbb{
int a;
char b;
int c;
};
// basic idea of offsetof
((struct bbb*)0)->c

kenmark 发表于 2011-11-8 23:17:23

// unnamed namespace
namespace {
void fun();
}
页: [1] 2
查看完整版本: C/C++里的无名