목록연구/C (2)
갈라파고스
Tight-binding 해밀토니안 만들 때 FM이랑 AF랑 푸리에 변환하는 과정이 미묘하게 차이가 나는 바람에 골치아팠다.for 루프 안에 if 넣기는 죽어도 싫고...이것저것 많이 해보다가 발견한 정답은 바로 함수 포인터였다.이걸로 고민 많이 했었는데 해결해서 기분이 좋다ㅎㅎ 함수 포인터 만들기다음과 같은 두 함수가 있다고 하자.int Add(int i, int j) { return i + j;}int Sub(int i, int j) { return i - j;}그리고 이들을 사용하기 위한 함수 포인터의 형태는 다음과 같다.int (*Calculate)(int, int)함수 자료형과 매개변수 자료형, 개수가 원래 함수들과 같아야한다. 함수 포인터는 왜 쓰는가?Calculate 라는 함수를 어떤 때는 ..
fscanf 에서 자꾸 경고가 뜬다. warning: ignoring return value of ‘fscanf’1. fscanf 의 리턴값 확인if(fscanf(fp, "%d%d%d", &i, &j, &k) == 3) continue;else { printf("fscanf FAIL\n"); exit(1);}fscanf 는 스캔에 성공한 개수만큼 값을 리턴한다.위 코드에서는 3개의 정수를 스캔하고 있으므로 fscanf 가 3을 반환해야 정상이다. 2. gcc -Wno-unused-result 옵션 사용 (비추)3. (void)fscanf()로 강제 형변환 (실패) 참고문헌https://stackoverflow.com/questions/34191613/warning-ignoring-return-..