본문 바로가기

C언어

void value not ignored as it ought to be 컴파일 진행 중에 아래와 같은 에러가 발생 할 수 있습니다. void value not ignored as it ought to be 리턴값이 없는(void) 함수를 사용해 연산을 처리하려 할 경우 발생하는 오류로 보입니다. 제 경우에 아래와 같은 경우에 발생하더군요... if( function() ) function() 이 리턴값이 없는데 있는 줄 알고 if문으로 조건 확인을 시도했습니다. 저거 때문에 날린 시간이... ㅠㅜ
Raw 이미지 파일 복사하는 C 소스 #include #include unsigned char **UCalloc(int width, int height) { int i, j; unsigned char **ptr; if ((ptr = (unsigned char**)malloc(height * sizeof(unsigned char*))) == NULL) { printf("\nMemory allocation failure\n"); exit(1); } for (i = 0; i
이중 포인터 간단정리 간만에 다시 C를 써야되는 일이 발생해서 요즘 쓰고있는데... 포인터를 또 까먹어서리 정리해 봤습니다.#include void main(){ int a1= 1; int *a2 = &a1; int **a3 = &a2; printf("a1:%d \n*a2:%d a2:%d \n**a3:%d *a3:%d a3:%d \n",a1,*a2,a2,**a3,*a3,a3); } [실행결과] 우선 a1은 1입니다. (여기서 부터 헷갈리면 난감함...) a2는 a1의 주소값을 가지고 있고, *a2는 a2가 가지고 있는 주소값이 가리키는 값 즉, a1이므로 1을 갖습니다. a3는 a2의 주소값을 가지고 있습니다. *a3는 a3가 가지고 있는 주소값이 가리키는 값 즉, a2이므로 a1의 주소값을 갖습니다. **a3는 *a3가 가..
2의 보수를 이용한 부호 바꾸기 C언어를 이용한 2의 보수 실습(?)을 해봅시다. 2의 보수 개념을 막 배우신 분들에겐 흥미로운 내용일 것 같네요. (윤성우 저자님의 열혈C 프로그래밍 책에서 코드를 인용했습니다.) #include int main() { int i; printf("정수 값을 입력하세요.\n"); scanf("%d",&i); i=~i; // 비트들을 뒤집음 i=i+1; printf("%d \n",i); return 0; } 재밌죠? ^^;;
컨볼루션 인코더 & 비터비 디코더 ver 0.5 정확하지 않은 코드일 수 있으니 참고용으로 보시기 바랍니다~#include #include #include #include #define SIGNAL_COUNT 100000 double gaussian(); double uniform(); // main 함수 ---------------------------------------- int main(void) { // 반복문용 변수들 int i, i1, diff; int j; int k, m; int l; int posi; int check1 = 1; int check2; int error_count; // 에러체크 double ber[11]; // BER int con_length; int decision; double EbN0, noise_pow; in..
BPSK #include #include #include #include #define SIGNAL_COUNT 1000000 double gaussian(); double uniform(); // main 함수 ---------------------------------------- int main(void) { int i, j; // 반복문용 변수 int error_count; // 에러체크 double ber[11]; //BER double EbN0, noise_pow; int* s_d_signal; double* s_a_signal; double* r_a_signal; int* r_d_signal; int state; // 에러확인 변수 FILE * file = fopen("output.txt", "wt")..
매크로(macro) #define #define은 전처리기(Preprocessor)에서 처리하는 매크로(Macro) 중 하나입니다. 전처리기는 컴파일(Complie)하기 전에 처리됩니다. 기능은 특정 글자를 정해준 글자로 교체하는 간단 명료한 방식입니다. 예제를 보면 손쉽게 이해가 가능합니다. 똑같은 코드를 #define을 사용한 것과 안한 것으로 표현해 보겠습니다.// #define 사용 #define verylong "abcdefghijklmnopqrstuvwxyz \n" int main(){ printf(verylong); printf(verylong); printf(verylong); printf(verylong); printf(verylong); return 0; } // #define 사용 안함 int main(){ print..
리눅스 gcc 사용 방법(컴파일러) [컴파일] gcc c코드파일이름 -o 생성파일이름 ex) $ gcc hello.c -o hello hello.c 코드를 컴파일하여 hello 실행파일을 생성 [실행] ./실행파일이름(앞에서 생성된 파일 이름) ex) $ ./hello ./는 현재 디렉터리를 나타냄