본문 바로가기

셈틀/C/C++

[C/C++] GCC를 이용한 컴파일 & 실행파일 생성 *설명 콘솔 프로그램 작성하기 다음은 간단한 C 프로그램을 위한 예제 코드이다. 다음 내용의 파일을 작성하고 hello.c라는 이름으로 저장하라. #include int main(int argc, char **argv) { printf ("Hello\n"); return (0); } Hello.c라는 코드 파일로부터 만일 콘솔 모드에서 실행 가능한 실행파일을 생성하고 싶으면 다음과 같이 하라. 이렇게 하면 컴파일과 링크가 한 번에 이루어진다. gcc -o hello hello.c 혹은 hello.o라는 오브젝트 파일을 생성하고, 이 오브젝트 파일로부터 콘솔모드 실행 파일을 생성하고 싶으면 다음과 같이 하라. gcc -c hello.c gcc -o hello hello.o 첫번째 명령은 컴파일 단계로 he.. 더보기
해결 거의 1달 남짓 나를 괴롭혀 오던 문제를 해결했다. 문제는 pointer를 인수로 넘겼을 때, 그 주소에 들어있는 데이터는 따로 리턴을 해주지 않아도 바뀐 값이 함수 밖으로 나간 뒤에도 유지가 되지만, 주소를 바꾼 경우는 꼭 리턴을 해주어야 한다는 것이었다. 링크드리스트에서 head의 주소가 바뀐 경우가 여기에 해당... //function to delete the node user wants to delete //head is an index which points the first node of linked list record* del_elmt(record *head){ int num; //integer to get the ID of node to delete int pre_amount=amount.. 더보기
Cprogramming.com 일명 C Board. C언어나 C++에 대해 질문을 하면 답변을 신속하게 들을 수 있다. 전 세계의 사람들이 있기 때문에 24시간 20~30명의 접속자를 유지하고 있다. 다만 영어 싸이트라는것이 단점이라면 단점.. 하지만 만국 공통 컴퓨터언어를 사용하기 때문에 별로 문제가 되지 않는다. 처음으로 포럼을 만들어보고 싶다는 생각을 하게한 싸이트 더보기
최대공약수(GCD)와 최소공배수(LCM) 구하기 아래의 개념을 잘 생각하면 구현할 수 있다. 최소공배수(Least Common Multiple) 만약 A가 B와 C의 최소공배수라면, A는 B로 나누었을 때도 나누어 떨어지고, C로나누었을 때도 나누어 떨어지는 수중에 가장 작은 수이다. 최대공약수(Greatest Common Divisor) 만약 A가 B와 C의 최대공약수라면, A는 B와 C를 각각 A로 나누었을 때, 나누어 떨어지는 수중에서 가장 큰 수이다. #include int getLCM(int num1, int num2);//최소공배수(Least Common Multiple)를 리턴하는 함수 int getGCD(int num1, int num2); //최대공약수(Greatest Common Divisor)를 리턴하는 함수 int main(voi.. 더보기
strstr함수 구현하기 string.h 내에 있는 strstr함수를 구현해봅시다. 문자열을 비교하는 strcmp, 문자열을 복사하는 strcpy, 문자열을 서로 붙이는 strcat등 많은 함수가 있지만 여기서는 제게 있어서 구현하기 까다로웠던 strstr을 strlen(문자열의 길이를 구하는 함수)과 함께 구현해 보겠습니다. 기껏 만들었더니 나는 30줄, 누구는 20줄이어서 다시 참고해서 만들었습니다...-ㅅ- #include #include /*system*/ char *my_strstr(const char *s1, const char *s2);//strstr 구현함수 int my_strlen(const char *s1);//strlen 구현함수 int main() { char *ptr; char str1[50]="Sinsa.. 더보기
비트연산을 이용한 한달 출석부 관리 프로그램 문제> int의 경우 현재 컴퓨터에서 4바이트(1byte=8bit)의 크기를 가지고 있다. 즉 총 32비트를 이용할 수 있다. 이 32비를 0과 1로 설정해서 한 달의 출석과 결석의 상태를 조절하는 프로그램을 작성하시오. 0000 0000 0000 0000 0000 0000 0000 0000 [그림 1] int형 4바이트(Byte) 구성 [그림 1]의 4바이트에서 가장 오른쪽에 있는 비트(LSB)가 1일을 나타내며 가장 왼쪽에 있는 비트(MSB)의 경우 32일을 나타내게 되지만 32일은 없으므로 사용하지 않는다. 출석의 경우 해당 비트를 1로 설정하고 결석의 경우 0으로 설정한다. 예) 0000 0000 0000 0000 0000 0000 1101 1011 위의 예)에서는 1일, 2일, 4일, 5일, 7.. 더보기
10진수를 BCD코드로 출력 BCD 코드란? BCD(binary-coded decimal)코드는 10진수 각 자리의 숫자를 4비트(네 자리)의 2진수로 표현한 것입니다. 네자리의 2진수를 큰 쪽부터 8의 자리, 4의 자리, 2의 자리, 1의 자리라고 하기 때문에 8421코드라고도 합니다. 10진수를 BCD코드로 출력 #include /*25. 10진수를 입력하면 BCD 코드로 출력하는 프로그램을 작성하시오*/ int numlen(int num);//10진수를 입력받아 자리수를 리턴하는 함수 void prtBCD(int num);//BCD코드를 출력하는 함수 void prtBin(int num);//2진수를 출력하는 함수 int main() { int num; printf("Put the number : "); scanf("%d", .. 더보기