본문 바로가기

프로그래밍

헝거리안 표기법 헝가리안 표기법은 컴퓨터 프로그래밍에서 변수명, 함수명을 지을 때 일정 규칙을 가지고 만드는 것 0 : 변수의 위치를 지정한다. g(전역변수), m(멤버변수), s(static변수), 없음(지역변수)1 : 0 위치에 g 나 m 을 지정한 경우 _ 을 기술 한다.2 : 자료형의 종류를 나타낸다. 클래스 이름에 대해서는 관습적으로 자음축양형을 사용 3 ~ : 변수의 의미 있는 이름을 기술하며, 3위치는 대문자를 사용, 변수 이름이 너무 긴 경우 자음만을 기술 ex ) g_nCnt 더보기
[visual studio 2012] WindowsXP 에서도 실행되는 exe 파일만들기 얼마전 개발툴을 visual studio 2012로 변경하였다. 별 문제없이 컴파일되었고 다른 문제는 없는 것 같았다. 그런데 컴파일한 exe파일이 에러룰 뿜으며 Windows XP에서 실행이 안되는게 아닌가. 원래 VS2012은 WindowsXP를 지원하지 않았고 최근에서야 XP호환성 업데이트가 이루어 졌다고 한다. XP 호환 버전으로 컴파일하기 위해서는 Visual Studio 2012 Update 1을 설치해야 한다. 업데이트를 설치하면 플랫폼 도구 집합(Platform Toolset)에 Visual Studio 2012 - Windows XP (v110_xp) 항목이 추가된 것을 확인 할 수 있다. 프로젝트 속성 -> 일반 -> 플랫폼 도구 집합 -> Visual Studio 2012 - Wind.. 더보기
[C언어] const 키워드 const란, constant의 약자로 "변함없는"이란 뜻으로 변수 앞에 붙이면 값과 주소를 변경할 수 없도록 만들어 준다. 변수를 상수로 만드는 것이다. 일반적으로 변수를 사용하는 방식 변수 앞에 const가 선언되면서 int _Max는 값과 주소가 변하면 안 되는 변수가 되었다. 이러한 특징 때문에 const형 변수는 하루 24시간, 1년 365일이렇게 값이 변하지 않는 변수로 많이 사용된다. 하지만 const 키워드를 포인터 변수에 사용할 경우 사용법이 달라진다. 【 포인터 변수에 const 키워드 사용 】 포인터 변수에 const 키워드를 붙이는 방법은 두 가지가 있다. EX) const int* _Max = &Value; const가 앞에 붙는 경우 int* const _Max = &Value;.. 더보기
[C언어] 지역변수와 전역변수 전역변수와 지역변수는 선언된 위치에 따라 구분된다. 전역변수의 경우 함수 바깥에 선언되어 있고, 지역변수는 함수 중괄호 안에 선언되어 있다. 그렇다면 while문이나 for문 안에 선언되어 있는 변수는 어떤 변수일까. for문 안에 선언된 변수 역시 지역변수이다. 지역변수는 중괄호 영역에서만 사용할 수 있는데 nTotalCount 는 for문에서 유효하고 nTamp 변수는 메인 함수 전체에서 유효하다. 이렇게만 보면 지역변수보다 전역변수를 이용해 코딩을 하는 것이 훨씬 편하게 느껴진다. 함수에 매개변수를 사용하지 않아도 되고 이 함수 저 함수 구분 없이 변수를 바로 가져다 쓸 수 있기 때문이다. 이 내용은 전역변수의 장점이 될 수도 있지만 단점이 될 수도 있다. 전역변수를 많이 사용하면 사용할수록 복잡하.. 더보기
[C언어] 재귀함수의 사용과 stack Overflow 1. 재귀 함수란? - 자기 자신을 재호출하는 함수로 계속해서 자기 자신을 호출할 수 있기 때문에 반복 연산에 많이 사용된다.자기 자신을 무한정 호출할 수도 있기 때문에 조건문을 제대로 만들어 주지 않으면 오류가 발생하기 쉽지만 잘 사용하면 보기 쉬운 간략한 코드를 만들기도 한다. 예제코드 재귀 호출 결과값 2. 재귀 함수의 사용 재귀 함수라 하면 일단 자기자신을 호출해야 한다. 그리고 절대 탈출 조건이 빠져서는 안된다. 재귀 함수는 반복문과 같은 형태를 띄기 때문에 탈출 조건이 없다는 것은 무한 루프에 빠지겠다는 것과 같다. 재귀 호출을 사용할 때는 항상 탈출 구문에 주의해야 한다. 3. 재귀 함수와 Stack Overflow - 예제 코드에서는 보기 쉽게 10회면 함수를 호출하지만 실제 프로그램 안에.. 더보기
[C언어] printf 함수에 사용되는 특수문자, 서식문자 1. 특수문자 특수문자 설명 \a 경고음 소리 발생 \b 백스페이스(Backspace) \f 폼 피드(Form Feed) \n 개행(New Line) \r 캐리지 리턴(Carriage Return) \t 수평 탭 \v 수직 탭 \\ 역 슬래시(\) \' 작은 따옴표 \" 큰 따옴표 2. 서식문자 서식문자 출력 형태 %D, %d 10진수 정수(양수와 음수 모두 표현 가능) %x, %o 16진수 정수, 8진수 정수(양수만 표현 가능) %f, %lf 10진수 실수(양수와 음수 모두 표현 가능) %c 한 개의 문자 %s 문자열 %u 10진수 실수(양수만 표현 가능) %e e 표기법에 의한 실수 %E E 표기법에 의한 실수 %g 소수점 이하 자리 수에 따라 %f, %e 둘 중 하나를 선택 %G 소수점 이하 자리 .. 더보기
[C언어] scanf, scanf_s 함수 오랜만에 예제소스를 만들기 위해 scanf 함수를 사용하였다. 정말 간단한 소스였기때문에 에러가 날 것이라고는 생각지 않았는데...... warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS 경고가 두둥! #include int main(void) { int value1, value2; scanf("%d %d", &value1, &value2); printf("%d + %d = %d\n", value1, value2, value1 + value2); printf("%d - %d = %d\n", .. 더보기
[C언어] rand, srand 함수 ◎ rand 함수- rand 함수는 난수를 발생시키는 함수이다. 범위는 0~32767. rand 함수의 활용 #include // 해당 파일을 포함시켜 줘야 rand 함수를 사용할 수 있다. int main() { int nNum = 1; // 번호 출력용 for(int nCount = 0; nCount < 3; ++nCount) { int nRandom = rand(); // 난수를 생성 printf("[%d] %d\n", nNum, nRandom); nNum++; } return 0; } 결과값 rand 함수는 0~32767의 난수를 생성한다.출력되는 난수의 범위를 지정하고 싶으면 rand() % 100 이런 식으로 범위를 정할 수 있다. rand 함수 범위 지정 #include int main() .. 더보기
[C언어] C언어의 변수 범위 C 언어의 자료형 - 16비트형 - [] 생략가능 [signed] char - 1바이트 부호형 자료. 값의 범위 : -128 ~ 127. 보통의 경우 ASCII 문자를 저장unsigned char - 1바이트 부호없는 자료. 값의 범위 : 0 ~ 255. 정수형 자료 저장[signed] int - 2바이트 부호형 자료. 값의 범위 : -32768 ~ 32767. 정수형 자료 저장unsigned [int] - 2바이트 부호없는 자료. 값의 범위 : 0 ~ 65535. 정수형 자료 저장[signed] long [int] - 4바이트 부호형 자료. 값의 범위 : -2147483648 ~ 2147483647. 정수형 자료 저장unsigned long [int] - 4바이트 부호없는 자료. 값의 범위 : 0 ~ .. 더보기
[C언어] while문 while 문의 기본 원리 int main() { while(반복조건) // 조건이 참이면 반복 내용 실행, 참이 아니면 while문을 탈출 { 반복 실행 내용 } return 0; } 학원 다닐때 코딩을 보면은 while문은 없고 죄다 for문으로만 코딩 한 기억이 납니다.그때 당시에는 while문이 쓰기 껄끄럽고 잘못하면 무한루프 돌고 그래서 잘 사용하지 않았었는데지금은 이 쉬운걸 왜 제대로 사용하지 못했는지.... 머리가 나쁘면 몸이 고생이라는 말이....저를 두고 하는 얘기인가 봅니다.... 그래서 이번 기회에 블로그 정리도 할겸 올려봅니다. 왜 for문 보다 while문이 어렵게 보일까?for문은 시작과 끝이 명확하게 보이고 연산자도 한눈에 들어오는 구조입니다.그렇기 때문에 맨 처음에는 for문.. 더보기