본문 바로가기

C26

[C] 로그인 프로그램 예제 (static 변수) ID, Password 를 받아 3회 제한된 횟수의 로그인 프로그램을 제작하세요. 1) 사용자로부터 ID 와 Password 를 입력 받는다. 2) 로그인 시도 횟수가 일정 한도를 넘으면 프로그램을 종료시킨다. 3) ID, Password 가 일치하면 로그인 성공 메세지를 출력 4) ID, Password가 일치하지 않으면 한도 횟수까지 다시 시도한다. #include #include #define SUCCESS 1// SUCCESS 등을 변수로 설정하지 않고 #define 로 쓴건 #define FAIL 2// 굳이 변수를 추가하여 코드를 길게 하지 않고 단순화시키기 위함 #define LIMIT 3// Java 의 final 같은 기능 int check(int id, int password); int.. 2021. 3. 8.
[C] 변수 변수 : 이름, 타입, 크기, 값 + 범위, 생존 시간, 연결 - 범위(scope) : 변수가 사용 가능한 범위, 가시성 - 생존 기간(lifetime) : 메모리에 존재하는 시간 1) 정적 할당(static allocation) : 프로그램이 실행되는 동안 유지 ex) 전역 변수 2) 자동 할당 (automatic allocation) : 선언된 블록이 종료되면 같이 소멸 * 지역 변수는 기본이 '자동 할당' 이지만 저장 유형 지정자를 통해 정적 할당에 사용 가능 - 연결(linkage) : 다른 영역에 있는 변수와 연결 상태 변수의 범위 : 전역 변수 & 지역 변수 - 전역 변수 : 함수 밖에 존재하는 변수로, 사용 범위는 '소스 파일 전체' 이다. * 전역 변수를 너무 많이 쓰면 코드가 '스파게티'.. 2021. 3. 8.
[C] 예제 (함수, 포인터, 구조체) 구조체 활용 예제 #include int add(int x, int y); int sub(int x, int y); struct Calc{ int (*fp)(int, int); }; int main(void){ struct Calc c; c.fp = add; printf("%d", c.fp(10, 20) ); return 0; } int add(int x, int y){ return x+y; } int sub(int x, int y){ return x-y; } 2021. 3. 5.
[C] 예제 (매개변수 포인터) 매개변수를 함수 포인터로 이용한 예제 #include int add(int num_1, int num_2); void executer (int (*fp)(int, int) ); int main(){ executer(add);// executer 를 호출할 때 add 함수의 메모리 주소를 전달 return 0; } int add(int num_1, int num_2){// int형 반환값, int형 매개변수 2개 return num_1 + num_2; } void executer (int (*fp)(int, int) ){// 매개변수가 함수 포인터가 될 수 있음 printf("%d\n", fp(10, 20) );// 매개변수로 함수 호출 } 2021. 3. 5.