#04 typedef
C Language/C basis View Comments
typedef stuct point {int x;int y;struct point *p}Point;Point a = {1,3};Point b = {100,200};a.p = &b;printf("%d %d",a.p->x,a.p->y);orprintf("%d %d",(*a.p)->x,(*a.p)->y);
typedef struct point{int x;iint y;}Point;void showpoint (Point pos){pos.x = 100;pos.y = 200;printf("%d %d\n",pos.x,pos.y);//결과가 100,200};//mainpoint a = {1,2};point b = {100,200};showpoint(a);printf("%d %d",a.x,a.y);//결과가 1,2
typedef struct point {
int x;int y;
};
void showposRef (Point *pos){
(*pos).x=100;pos->y = 200;printf("%d %d",pos->x,pos->y); //100,200나옴
};
//main
Point a= {10,20};
showposRef(&a);
printf("%d %d",a.x,a.y); // 100,200 나옴 바뀜
Point a= {1,2};Point b;b=a;b에 a 가 복사된다.
typedef struct sbox{int x;double z;int y;}Point;typedef union ubox{int x;int x;double z;}UBOX;//mainSBOX s;UBOX u;printf("%p %p %p ",&s.x,&s.y,&s.z);//주소가 4 4 8 단위씩 뛴다.printf("%p %p %p ",&u.x,&u.y,&u.z);//주소가 8사이즈로 멈춰있다. 가장크게 잡혀있음.printf("%d %d",sizeof(SBOX),sizeof(UBO);//sbox는 4+4(패딩)+8+4+4(패딩) 24바이트//Ubox는 가장큰 double 8바이트
typedef struct dbs{
unsigned int a;
unsigned int b;
}DBS;
typedef struct uboxs{
int insertNum;
DBS *p ;
}UBOXs;
//main
UBOXs ubox;
scanf("%d",&(ubox.insertNum));pritntf("upper %d %d",ubox.p->a,ubox.p->b);
*enum
enum{do,re,me};//maindo =0 re =1 me = 2enum{do=3,re,me = 5} ;//main 3,4,5 re는 앞의 상수에 +1typdef enum doreme{doo,re,mee}DOREME;
'C Language > C basis' 카테고리의 다른 글
#03 구조체와 포인터 (0) | 2016.04.27 |
---|---|
#02파일분할과 헤더파일 (0) | 2016.04.27 |
#01 선행처리기 (0) | 2016.04.27 |
Recent Comments