본문 바로가기
반응형

분류 전체보기145

C015_함수에 대해 기본적인 함수 틀 반환값자료형 함수이름() { 코드; return 반환값; } 기본적인 틀은 위와 같다. 반환값 자료형은 함수의 결과물이 어떤 자료형이 되는 것인지 지정해 줍니다. 예를 들어 int라면 정수형을 return 할 것이고 void라면 return을 사용하지 않아도 된다. 크게 말하면 'int main()'도 정수형 main함수이다. 기본적인 함수의 예 #define _CRT_SECURE_NO_WARNINGS #include #include //bool, true, false 함수가 정의된 헤더 파일 int one() { return 1; } float realNumber() { return 1.234567f; } bool truth() { return true; } int main() { i.. 2023. 9. 17.
C014_구조체 정렬하기 C언어에서 구조체를 정렬할 때 멤버 중에서 가장 큰 자료형 크기의 배수로 정렬하게 됩니다. 예를 들어 Person이라는 구조체가 아래와 같이 구성되었다고 가정해 봅시다. struct Person { int age; char flag; }; 위와 같이 구성이 되면 이 구조체의 전체 크기는 8바이트가 됩니다. 가장 큰 int자료형을 기준으로 세는 것이지요. 이렇게 되면 3바이트를 낭비하게 됩니다. 낭비가 생기는 것을 알면서도 컴파일러가 이렇게 처리하는 이유는 CPU가 접근하기 쉬운 위치에 변수들을 배치하기 때문에 4바이트 또는 8바이트 단위로 끊는 바이트 패딩 작업을 수행하는 것입니다. 이때 중간중간 빈 공간이 생깁니다. 다른 컴퓨터(시스템)에서 진행을 하게 되면 끊는 바이트 단위가 바뀔 수도 있습니다. 그.. 2023. 9. 16.
C013_구조체 포인터 사용하기 들어가기에 앞서서 포인터에 대해 설명은 전에 포스팅한 것을 참고해 주시길 바라겠습니다. https://hig0617.tistory.com/15 구조체 포인터 #define _CRT_SECURE_NO_WARNINGS #include #include //strcpy 함수가 선언된 헤더 파일 #include //malloc, free 함수가 선언된 헤더 파일 typedef struct Person { char name[20]; int age; char address[100]; } Person; int main() { Person* p1 = malloc(sizeof(Person)); //구조체 포인터 선언, 메모리 할당 //화살표 연산자로 구조체 멤버에 접근하여 값 할당 strcpy(p1->name, "홍길동".. 2023. 9. 15.
C012_struct, 구조체에 대해 구조체 정의 //선언하기 struct 구조체이름{ 자료형 멤버이름; }; //변수 선언하기 struct 구조체이름 변수이름; 위와 같이 구조체를 선언하는 것이 기본입니다. 익명 구조체 (typedef) 개발자님들께서 변수 'struct 구조체 이름'으로 일일이 변수를 만드는 것이 불편해서 익명 구조체를 만들었습니다. //선언하기 typedef struct _구조체 이름{ 자료형 멤버이름; } 구조체 별칭; //변수 선언하기 구조체별칭 변수이름; typedef를 사용해 익명 구조체를 만듭니다. 이때 '_구조체 이름'과 '구조체 별칭'이름이 같아도 무관합니다. 이렇게 하면 변수를 선언할 때 'struct 구조체 이름'으로 선언하지 않고 '구조체별칭'으로 구조체를 선언할 수 있게 됩니다. Person 구조체 .. 2023. 9. 14.
반응형