2015. 3. 22. 03:51ㆍ창고
#include <stdio.h>
/*
///////////////////////
숙제
가위바위보 // 무한반복 한 번 더? yes, no
구조체성적표
//////////////////////
함수 호출 방식
call by name
함수식을 호출했을 때 함수식으로 치환되어 실행되는 형태.
#define은 조금 애매하다.
전처리에서 이미 식이 다 치환되기때문에 컴파일 시점에서 이것을 함수식이라고 볼 수 없다.
call by value
값으로 호출하는 형태.
call by address
실인수에 주소를 전달하는 형태.
call by reference
포인터 변수
래퍼런스 변수
typedef int MYINT;
단순하게 알리는 용도. 기존의 타입을 이것이라고 부른다. 재정의.
--------------------------------------------------
사용자 정의 타입.
structure enumeration union
태그라는게 존재.
struct _태그명
{
멤버변수
};
타입으로 인정 - 키워드 + 태그
배열 VS 구조체
동형 VS 한 개 이상의 동형 또는 이형(구조체는 빈 구조체를 만들 수 없다.)
----------------------------------------------------
struct A;
운영체제로부터 메모리공간 어딘가에 구조체 A의 멤버변수들의 크기만큼 메모리 공간을
연속적으로 할당받고 그 주소위에 A라는 문을 만들고 그 안에는 쓰레기 값들이 들어있다.
A.(안에있는) : 일반구조체변수
A->(A가 가리키는곳에) : 구조체 포인터
구조체를 전역에 선언하는 이유 - 다른 함수에서도 사용하기 위해서.
태그명을 쓰는 이유 - 변수로도 사용하겠다라는 의미.
패딩 - 누빔. 바이트를 누벼 남는 비트들.
구조체 정렬.
왜? 컴퓨터가 최적화 옵션에서 빠르게 처리하기 위해서 바이트 단위를 맞추기 위해서.
----------------------------------------------------------
이미 리치킹............
union tag
{
1개 이상의 이형이나 동형
};
enum 태그명
{
};
열거자는 기본적으로 정수형을 사용한다.
변수 사용이 가능하다.
*/
union tagC
{
int a;
char b;
float c;
double d;
};
struct tagD
{
union
{
struct
{
int a;
int b;
int c;
};
int arr[3];
};
};
#pragma pack( push, 1 )
struct tagA
{
int a;
short b;
char c;
double d;
};
#pragma pack( pop )
struct tagB
{
int a;
double b;
char c;
short d;
};
void main()
{
union tagC test;
printf("%d\n",sizeof(test));
printf("%d\n",sizeof(struct tagB));
struct tagD test2;
}
'창고' 카테고리의 다른 글
케이미피케이션 세미나 게임은 정치다! (0) | 2015.03.27 |
---|---|
국기 정규수업 14~16일차 메모 (2) | 2015.03.25 |
프로그래밍 대회에서 배우는 알고리즘 문제해결전략 1장 (0) | 2015.03.24 |
국기3기 정규수업 12일차 메모 (2) | 2015.03.15 |
국기3기 정규수업 11일차 메모 (0) | 2015.03.12 |
국기3기 정규수업 9&10일차 메모 (0) | 2015.03.11 |
국기3기 정규수업 8일차 메모 (0) | 2015.03.09 |