목록C (13)
풀스택개발자될거임
운영체제와 메모리의 관계 32 & 64비트 운영체제 차이 32비트는 RAM을 4GB까지 사용가능하고 64비트는 16EB 까지 사용가능 64비트는 기본적으로 메모리 사용량이 많음, 32비트 프로그램과 호환하기 위해 호환 모듈까지 돌리기 때문에 낮는 컴퓨터에 64비트 설치하면 오히려 손해 현재 개발자들은 32비트 방식으로 프로그래밍 함. (32비트 방식으로 개발해도 64비트 운영체제에서도 동작함) 메모리 주소 지정방식 직접 주소 지정방식 메모리를 사용할 때 프로그래머가 사용할 메모리 주소를 직접 적는 방식ㅂ 예 ) '102번지에 1042라는 값을 2바이트 크기로 저장하겠다.' c언어의 '변수' 문법과 같음 short borthday = 0x0412; 직접 주소 지정방식의 한계 다른 함수에 선언한 변수가 메모..
배열이란 데이터를 그룹으로 묶어주는 문법 int student_1 = 0; int student_2 = 0; int student_3 = 0; . . . int studen_100 = 0; 이걸 int student[100]; for(int i = 0; i < 100; i++) student[i] = 0; 이렇게 바꿔줌 배열 선언 및 사용 자료형 변수이름[요소개수]; 예를들어 short age[100]; 라고 선언하면 2byte(short 크기) 크기의 변수가 100개( age[0] ~ age[99] )를 생성한 것과 같음. 그래서 age 변수는 총 200byte 크기로 만들어짐. 특정 요소에 값을 넣고 싶다면 배열이름[인덱스] = 값; 이렇게 하면 됨 예시 age[0] = 20; age 첫번째 요소에 ..
변수종류 지역변수 함수 안에서 사용하는 변수 ※지역 변수는 이름이 같더라도 함수가 다르면 다른 메모리에 할당되기 때문에 값이 공유가 안됨. 전역변수 프로그램 전체에서 사용하는 변수 전역변수 함수 밖에 선언한 변수를 전역변수(Global Variable)라고 한다. 전역변수는 프로그램 전체 영역에서 사용 가능함. 그래서 똑같은 이름으로 2개 이상 선언할 수 없음. 주의할점 전역변수는 함수의 독립성을 강조하는 C언어의 장점을 퇴색시킴. (필요한 경우에만 쓰자) 지역변수와 전역변수의 이름이 같다면 더 큰 문제가 발생함. (오류가 안생김) 기본적으로 C언어는 전역변수보다 지역변수를 우선으로 처리함. tip. 전역변수를 사용할땐 이름앞에 g_ 접두어를 사용. 예) sum -> g_sum extern 키워드 같은 ..
비트 단위 연산자가 필요한 이유 //전등상태표현 unsigned char lamp_state = 0; lamp_state = 1; 만약 80개의 전등을 위 방법대로 관리한다고 하면 변수 80개가 필요함. 즉 80바이트가 필요 그런데 비트단위 연산자를 이용하면 10바이트만 있으면됨. -> 메모리절약 ※일단 기본적으로 진수변환 방법을 알아야함 시프트 연산자 기능 ""으로 비트를 옮김 unsigned char data = 0x1A; //이동전 : 0001 1010 data = data : 2^이동한비트수 만큼 나눔 주의할점 1. 연산자 우선순위가 낮음 2. 변수에 부호가 있으면 빈자리를 부호비트랑 동일한 상수로 채워짐 비트 연산자 AND(&) , OR(|), NOT(~), XOR(^) 연산을 수행 지정한 비트..
반복문의 기본구조 1. 시작조건 2. 조건 변화 수식 3. 종결조건 한 가지라도 없거나 잘못 사용하면 반복을 안 하거나 무한반복됨 for 반복문 반복의 3요소를 제일 단순하고 정확하게 표현한 반복문 반복문중 제일 많이 사용되고 , 시작과 끝이 명확한 반복작업에 많이 사용됨 for(시작조건;종결조건;조건변화수식) 명령문; for(시작조건;종결조건;조건변화수식) { 명령문1; 명령문2; } for 반복문 - 변형 형식을 꼭 지킬 필요는 없음 int data = 0; int i = 1; for(; i < 101; i++) data += i; 앞쪽에서 i를 초기화했으면 for문 시작조건을 생략할 수 있음. 무한루프 for(;;) 명령문; 이렇게 하면 for문으로 무한루프를 돌릴 수 있음. (break 쓰면 탈출..
제어문이란? 프로그램의 실행흐름을 제어하는 문법 문법 if 조건문 (단일) if(조건수식) 명령문; 조건수식이 참이면 명령문을 실행함 TMI 조건수식에 0 이외의 값을 넣으면 참으로 인식해서 명령문이 실행됨 만대로 0을 넣으면 거짓으로 인식함 그리고 조건수식이 참이면 1로 바뀜 이걸 이용해서 이런것도 가능함 int a = 1; printf("%d\n",(a == 1)); 결과 1 int a = 1; printf("%d\n",(a == 3)); 결과 0 예시 명령문1; if(조건수식) 명령문2; 명령문3; 조건수식이 참일경우 : 명령문1 -> 명령문2 -> 명령문3 조건수식이 거짓일경우 : 명령문1 -> 명령문3 if 조건문 (복합) 예시 명령문1 if(조건수식) { 명령문2; 명령문3; } 명령문4; 조..
대입 연산자 대입의 의미로 쓰임 산술 연산자 +,-,*,/,% 는 산술 연산자로 각각 더하기, 빼기, 곱하기, 나누기, 나머지 연산을 뜻함 증감연산자 ++ : 1을 증가시킴 -- : 1을 감소시킴 이항 연산자 int i = 5; i = i + 1; 단항 연산자 int i = 5; i++; 전위형 후위형 int i = 5, sum; sum = ++i; // 증감후 대입 sum = i++; // 대입후 증감 관계 연산자 : A 가 B 보다 크면 참 = : A 가 B 보다 크거나 같으면 참 == : A와 B가 같으면 참 != : A와 B가 같지 않으면 참 논리 연산자 && : And 연산 || : or 연산 ! : A가 거짓이면 참 , 참이면 거짓
라이브러리란 ? C언어에서 함수를 효과적으로 관리할 수 있도록 하는 기술 업데이트가 필요한 함수들만 소스파일에 유지하고 나머지는 라이브러리 파일에 넣어서 관리 헤더파일 (.h) 라이브러리 파일에 있는 함수를 사용하려면 , 사용할 함수의 원형을 일일이 선언해야 하기 때문에 함수 원형들을 특정파일에 미리 선언해 두고 사용한다. 이것을 헤더 파일 이라고 한다. 전처리기 전처리기란? 프로그래머가 원하는 사항을 컴파일러에 직접 지시하는 문법 # 기호로 시작한다. #include 헤더파일을 읽을 때 사용 #include //기본으로 제공하는 헤더파일을 사용할 때 #include "헤더 파일 이름" //프로그래머가 정의한 헤더 파일을 사용할 때 #define 상수나 명령문을 치환 #define 표준 라이브러리가 필요..