목록c (12)
STUDY
웨이브 파일의 헤더를 읽는 코드 (simple version). 필요한 정보 - WAV 파일의 format - BitRate, ByteRate, SampleRate, Channels 등의 개념 이해 - Little/Big endian - fopen(), fread(), fwrite() functions - printf("%.*s", 4, str) null-terminator를 제외한 문자열 인쇄 방법. /********************************************************** Just reading a wav file header **********************************************************/ #include #include in..
걸리버 여행기에 나오는 Big & Little Endians. 메모리에 data 를 저장하고 전송하는 두 가지 방법. Big endian 은 most significant bit 을 left-most memory address 에, 반대로 Little endian 은 right-most memory address 에 저장하는 방법. Big endian 에서는 high byte transferred fisrt, Little endian 에서는 low byte transferred first. 예를 들면, integer value인 1234 값이 있다고 해보자. 이는 hexadecimal value로 변환하면 4D2 이다. 1 byte는 8 bits, hexadecimal one digit 은 half by..
Cygwin64 다운, 설치한 후에 gcc compiler를 설치하였다. 그 후에 샘플 wave 파일을 다운로드 받아서 플레이하려고 한다. [ StackOverflow: How to use PlaySound in C ]의 코드를 그대로 따라해봤는데, 에러 메시지가 잔뜩 출력될 뿐. #include #include #include #include int main(int argc, char *argv[]) { PlaySound("C:\Snakes and Ladders\snake.wav",NULL,SND_SYNC | SND_LOOP | SND_FILENAME); return 0; } 에러 메시지를 보니 헤더와 관련이 있어, 헤더를 삭제하고 실행해보았다. #include #include #include int ..
Two dimensional character array를 가리키는 pointer. 몇몇 책에서는 array of pointers (char * ptr[2])혹은 pointer to array (char (*ptr)[2]) 식으로만 설명하고 있는데, 다른 방법은? (a) 먼저 compound literal의 방법으로 declaration과 initialization을 동시에 하는 방법 (b) declaration을 먼저 한 후에 그 포인터를 2-D character array를 가리키게 하는 방법 결과는 아래와 같고, [O] 표시는 성공, [X] 실패, [ . ] 는 부분 성공. /* # Pointer and 2D array pointing at pointing range # Declaration and..
C에서 GUI programming을 위한 [ raylib ]이란 것이 있다. Window에서 TCC 혹은 MinGW compiler를 합친 설치파일을 다운로드 할 수 있다. 문제! - Notepad라는 텍스트 에디터를 좋아하지 않는다. 차라리 Vim 혹은 Emacs를 쓰고 말 정도. 뭔가 세팅을 그 텍스트 에디터에 잔뜩 해놓았으나, 아예 Notepad가 싫어서 다 싫어진다. - Notepad를 열어 실행해보나 되질 않는다. `core-basic-window.c`에서부터 에러가 난다. 아마도 Anti virus와 관련된 것인지는 모르겠는데, 잘 해결이 되질 않아 uninstall. - 재설치를 해보니 예제가 실행이 됨. C를 사용하여 game을 만든다는 것이 너무 신기하다.
1. MSYS2 설치 과정의 문제 해결 MSYS2를 설치한 후에 `packman -Syu` 명령으로 업데이트를 하자니 다음과 같은 에러가 계속 뜬다. $ pacman -Syu error: mingw32: signature from "Alexey Pavlov (Alexpux) " is unknown trust error: mingw64: signature from "Alexey Pavlov (Alexpux) " is unknown trust error: msys: signature from "Alexey Pavlov (Alexpux) " is unknown trust :: Synchronizing package databases... mingw32 452.7 KiB 828K/s 00:01 [########..
Visual Studio Code라는 Text Editor로 C 언어 프로그램을 만드려면, compiler가 필요하다. 대표적인 것이 GNU gcc, clang 등이 있다. 그런데 Windows 10에서 c compiler를 사용하기 위해서는 꽤나 번거로운 과정을 거쳐야 한다. (a) cygwin을 설치하고 gcc, g++, gdb, make 등을 설치된 cygwin 환경 위에 다시 설치, (b) MSYS2를 설치하고 update를 하고 pacman으로 필요한 tool chain을 설치, (c) tdm-gcc를 설치, (d) docker를 실행하고 linux 환경에서 gcc 설치 등이다. 그런데 단지 C 언어만 다룬다면 이런 과정이 전혀 필요없다. TCC라는 것을 사용하면 된다. 번거롭게 C compil..
Installing C Compilers in Windows System C/C++ compilers가 GNU gcc/g++ 한 가지만 있는 줄 알았는데 그렇지 않다.아래의 어느 것을 설치하더라도 c code를 compile 할 수 있다. 특히 Tiny C/C++ compiler란 것은 다른 것들에 비하여 굉장히 크기가 작고, 홈페이지를 읽어보면 꽤나 장점도 있는 것 같다. command line에서 직접 compile, make 하려면 Tiny C/C++ compiler를 설치해서 쓰는 것이 Windows에서 제일 효율적이라 생각된다. [ GNU gcc/g++ compiler ] [ Visual Studio C++ compiler ] [ LLVM Clang compiler ] [ Tiny C/C++ c..
파일 입출력 `while(!feof(FILE *fp))`을 사용할 때 발생하는 에러 검색해볼 것. 특히 `feof` 등. /* content of test.txt first second third */ #include #include #include int main() { // double pointer for two string lines // and the two string lines will be pointed by (char *) pointer FILE *fp = fopen("test.txt", "r"); char **lst = malloc(3 * sizeof(char *)); // read lines until feof(fp) is not Null // Only 2 lines will be r..
How to use gcc in Windows 10 1. Cygwin, Msys2, MinGW 혹은 TDM-GCC 설치하고 compile하는 방법- 설치한 후에 vscode나 다른 IDE로 실행하면 되지만, 이상하게도 결과값이 나타나는데 시간이 좀 걸린다. 그리고 gcc를 이용하기 위해서 Cygwin, MinGW, Msys2 등의 것들을 잔뜩 설치해야 한다는 찝찝함, 설치하는데 시간 많이 소요 2. Window 10 64bit에서 Tiny C Compiler를 사용하는 방법- 굉장히 작고, 빠르고, Cygwin 등을 설치할 필요가 없다. 3. Docker를 이용하는 방법1) gcc를 빠르고 간편하게 쓸 수만 있으면 된다는 것이 핵심! - Windows 10에서 편한 IDE로 C 프로그램을 코딩한 후에, ..