[C, C++] #define을 사용하는 이유
·
C, C++
Build의 순서는 아래와 같다. 소스코드 -> 전처리 -> 컴파일 -> 링크 -> 실행 C언어를 처음 공부할 때, #define을 사용하지 않으면 전처리 과정을 거치지 않는다고 생각한 적이 있다. #으로 시작하는 문장은 전부 전처리기 지시자임에도 #include는 전처리기라고 생각하지 않았다. 항상 C언어를 실습할 때, 의무적으로 #inlcude 를 작성한 폐해이다. 전처리란 무엇인가? 컴파일 전에 처리해야 하는 일이고 전처리를 수행하는 장치를 전처리기라고 한다. 전처리기는 헤더 파일을 불러오거나, 소스 파일 내부의 특정 문자열을 상수 또는 문자로 치환하거나, 조건에 따라서 코드의 일부를 컴파일하거나 컴파일하지 못하게 하는 선택 기능을 제공한다. 궁금증이 하나 발생한다. #define은 왜 사용하는가?..
[C]BMP구조체 : #pragma pack(push,1 )사용하지 않고 정렬하기 2탄
·
C, C++
안녕하세요. 오랜만에 C언어에 대해 글을 씁니다. 오늘은 제목과 같이 #pragma pack(push,1)을 사용하지 않고 구조체만으로 정렬하는 방법에 대해 이어쓰겠습니다. 혹시 이해가 안가신다면 전에 글을 읽어주시기 바랍니다. https://coding-yoon.tistory.com/27 [C]BMP구조체 : #pragma pack(push, 1) 사용하지 않고 정렬하기 안녕하세요. 오랜만에 C언어에 대해 글을 써봅니다. 여러분들 BMP를 불러올 때 어떻게 하시나요? https://dojang.io/mod/page/view.php?id=703 C 언어 코딩 도장: 81.2 비트맵 구조체 작성하기 비트맵 파일의 구조.. coding-yoon.tistory.com #include // strcpy 함수가 ..
[C]BMP RGB 값 조절
·
C, C++
#include #include #include #include #pragma warning(disable:4996) #define _CRT_SECURE_NO_WARNINGS typedef uint8_t BYTE; typedef uint32_t DWORD; typedef int32_t LONG; typedef uint16_t WORD; /*********************************************************STRUCTS***********************************************************/ #pragma pack(push, 1) typedef struct tagBITMAPFILEHEADER { WORD bfType; //specifies..
2차원 배열 동적할당하기 3 편
·
C, C++
안녕하세요 2차원 배열 동적할당하기 3편입니다. 2편에서는 1차 배열을 2차 배열처럼 표현하였는데 단점으로 배열 사용할 때 인덱스가 복잡하여 사용하기 어려웠습니다. 이제는 1편의 2차 배열을 조금 정리하여 이쁘게 표현해보도록 하겠습니다. int** mat; mat = (int**)malloc(sizeof(int*) * column); mat[0] = (int*)malloc(sizeof(int) * row *column); for (int i = 1; i
18진수
'C언어' 태그의 글 목록 (3 Page)