[C 강좌 ] 변수

Windows/TIP 2021. 2. 9. 23:54
728x90

프로그래밍에 있어 변수(Variable)란, vary와 able의 합성어로 '내용을 다양하게 변화시킬 수 있는 것'이라는 뜻을 가져요.

다시 말해 변수는 어떤 값을 담을 수 있는 '그릇'이라고 볼 수 있어요.

마치 처음엔 그릇에 김치를 담았다가 실증이나면 그릇의 김치를 치우고 다시 나물을 담을 수 있듯, 변수도 변수가 가진 값을 프로그래머가 원하는 때에 바꿀 수 있는 거에요.

또한 '그릇'이므로 변수의 크기가 커질수록, 즉 변수가 메모리에서 차지하는 공간이 클수록 많은 것을 담을 수 있고 어떤 변수이냐에 따라 담는 내용도 달라질거에요.

 

아래는 C에서 사용하는 변수와 크기, 그리고 그 변수가 담을 수 있는 범위를 표로 나타낸 것이에요.

 변수 타입  크기  범위
 short  2Byte  -32768 ~ 32767
 int  4Byte  -2147483648 ~ 2147483647
 long  4Byte  -2147483648 ~ 2147483647
 unsigned int  4Byte  0 ~ 4294967295
 unsigned long  4Byte  0 ~ 4294967295
 float  4Byte  1.175494351E-38 ~ 3.402823466E+38
 double  8Byte

 2.22507385072014E-308 ~ 1.7976931348623158E+308

 char  1Byte

 1Byte를 차지하는 문자 하나.

 단, 한글은 2Byte를 차지하므로 배열을 사용한다.

 

변수 중 short, int, long, unsigned int, unsigned long은 '정수형'이에요.

정수형의 변수는 오직 정수만을 담을 수 있어요. 문자열이나 소수 등은 정수형 변수에 넣을 수 없답니다.

 

그리고 float, double은 '실수형'이에요.

실수형의 변수는 정수는 물론이고 소수까지 담을 수 있어요. 하지만 문자열은 넣을 수 없어요.

 

char는 '문자형' 변수에요.

문자형 변수는 문자를 담을 수 있는 변수에요. 문자가 아닌 수는 문자 상태로 바꿔야만 담을 수 있어요.

예를 들어, char 타입의 변수 A가 있을 때 A에는 "A" 또는 "B" 등의 문자를 넣을 수 있어요.

하지만 1, 2 등의 수는 넣을 수 없답니다. 이럴 때엔 수를 문자열로 바꾸어 "1", "2" 등의 형태로 넣어주셔야해요.

참고로 C에서는 큰따옴표(")의 유무로 문자열인지 판단해요.

그러므로 큰따옴표가 있는 "A"는 문자열이지만 큰따옴표가 없는 A는 문자열이 아닌 것이 된답니다.

 

또한 정수형 변수들 중 앞에 unsigned이 붙은 것은 '음수가 없다'라는 뜻이에요.

unsigned가 붙지 않은 변수는 음수와 0, 그리고 양수를 담을 수 있는 것에 반해, unsigned가 붙은 변수는 0과 양수만 담을 수 있어요. 또한 음수를 담지않는 만큼 담을 수 있는 양수의 범위가 더 크답니다.

 

변수를 사용할 때에는 먼저 변수를 '선언'해주어야해요.

'선언'은 선언된 변수의 타입에 따라 메모리에 그 공간을 확보 해 놓는 것이므로 사용하기 전에 반드시 해야하는 작업이에요.

변수의 선언은 아래와 같이 할 수 있어요.

 

  변수 타입 변수 이름;

ex) int ABC;

 

마지막에 붙는 ;는 C에서 하나의 코드가 끝났음을 알리는 용도에요.

;로 코드의 끝을 알리지 않으면 C는 코드의 끝난건지 파악하지 못해 에러를 일으켜요.

 

변수 타입은 위쪽에서 언급한 바와 같이 int, long, char 등을 뜻해요.

어떤 변수 타입으로 선언했느냐에 따라 메모리에서 적당한 크기를 선언한 변수 이름 앞으로 할당 해 주어요.

 

변수 이름은 변수를 구분하여 사용하기 위해 쓰는 것인데, 아래의 표와 같은 네가지 경우를 제외하고는 프로그래머가 자유롭게 지정할 수 있어요. 하지만 효율성을 생각해서 무엇에 사용되는 변수인지를 알 수 있도록 정하는 것이 좋아요.

 

 1. 변수 이름은 대소문자를 구분한다. ex) 변수 ABC와 변수 abc는 서로 다른 변수이다. 

 2. 변수 이름은 영문자 또는 밑줄 문자(_)로 시작되어야한다.

 3. 변수 이름에는 공백을 사용할 수 없다.

 4. 영문자, 밑줄 문자, 숫자만 사용할 수 있다.

 5. 예약어를 사용할 수 없다. (예약어 = 프로그래밍 언어에서 이미 문법적으로 사용되는 단어들) ex) return, int, if

 

그리고 C는 변수의 선언이 소스 전체 또는 함수 블록의 가장 앞쪽에서 이루어져요.

이해를 돕기 위해 아래의 표를 보아주세요. 이것은 C의 일반적인 소스 구성이에요.

 

 #include <헤더 파일>

 선언문; 

 

 void main() {

     선언문;

     명령문1;

     명령문2;

     .....

     명령문3;

 }

 

 void 함수() {

     선언문;

     명령문1;

     명령문2;

     .....

     명령문3;

}

 

우선 C에서는 각 코드의 끝을 ;를 이용해서 알리고 {와 }를 이용해서 코드의 집합을 구분해요.

그리고 {와 }로 분리된 코드 집합을 '블록'이라고 칭하는데 이런 함수 블록들이 모여서 하나의 소스를 구성하는 거에요.

함수 블록들의 가장 첫 문장들을 보세요. void main(), void 함수()는 해당하는 함수 블록의 이름(main, 함수)과 타입(void)이에요. 함수는 다음 기회에 다루도록 하고, 우선 함수 이름 바로 다음에 나오는 코드를 보세요. 바로 선언문이에요.

이처럼 선언문은 함수 블록의 가장 처음 부분에서 이루어져야하며, 함수 블록 내의 어떠한 문장보다 먼저 나와야해요.

 

이번엔 함수 블록이 아닌, 소스 전체의 가장 앞 부분을 보세요.

#include와 선언문이 위치한 것을 알 수 있어요.

#include는 '선행처리기 지시자'인데, 역시 나중에 다루기로하고 일단은 선언문을 보아주세요.

함수 블록에서와 마찬가지로 소스 전체에서도 선언문은 선행처리기 지시자와 함께 소스 앞쪽에 위치해요.

 

이렇게 변수 선언은 소스 또는 함수 블록의 가장 앞에서 이루어져야하고, 그 이외의 곳에서 선언되면 에러를 일으켜요.

또한 변수는 선언된 위치에 따라 지역 변수와 전역 변수로 구분되어요.

 

먼저 지역 변수는 하나의 블록 내에서 선언된 변수로, 그 블록 내에서만 변수를 사용할 수 있어요.

전역 변수는 블록들의 밖, 즉 소스의 앞부분에 선언된 것으로 소스 전체에서 사용할 수 있어요.

 

그리고 사용되는 범위에 따라 정적 변수와 외부 변수로 분류되기도 하는데, 정적 변수는 그 변수가 선언된 블록이 끝나더라도 메모리에서 사라지지않아요. 정적 변수로 선언할 때에는 변수 타입 앞에 static을 넣으시면 되어요.

ex) static int A;

 

외부 변수는 다른 소스 파일에서도 변수를 사용할 수 있어요.

C 프로그램은 두 개 이상의 소스 파일 묶음으로도 이루어질 수 있는데, 이 때 외부 변수를 사용하면 변수가 선언된 소스 파일은 물론, 그 소스 파일과 연결된 다른 소스 파일에서도 변수를 사용할 수 있어요. 외부 변수 선언은 extern을 변수 타입 앞에 넣으시면 되어요.

ex) extern int A;

 

반응형

'Windows > TIP' 카테고리의 다른 글

제어판 제어(비활성화) 방법  (0) 2021.02.09
VB 기본 컨트롤 이해하기  (0) 2021.02.09
윈도우 10 숨겨진 기능 9가지  (0) 2021.02.09
VB 기본용어 정리  (0) 2021.02.09
와이어 샤크 사용방법  (0) 2021.02.09

안드로이드 에뮬레이터 Memu

기타 도구/Utility 2021. 2. 9. 23:50
728x90

이번에 소개할 프로그램은 PC에서 안드로이드를 실행하여 실제로 스마트폰기능을 사용하는 프로그램입니다.

 

가장많이 아시는 프로그램으로는 블루스택 잘아실거예요 ㅎㅎ 근데 제 노트북은 고물이라 안돌아가요 >ㅇ<

 

그래서 Memu 에뮬레이터를 사용해봤는데 사용하기가 편해서 추천해드립니다.

 

공식 홈페이지 https://www.memukorea.com/ 에서 다운 받으시면 됩니다.

 

중간에 검은네모는 광고및 앱이름과앱아이콘들을 가렸습니다. ( 광고로 인식되서)

 



처음 실행하면 로딩창이 뜨고 100% 되면 아래의 모습이 뜹니다. 기본설정은 화면 : 태블릿 기기 : 갤럭시 노트 10 


기본적으로 구글스토어가 깔려있습니다. 저는 게임용도로 사용하여서 게임을 깔아서 사용하였습니다

사용하는데 문제는 없었습니다. ㅎㅎ

 

이 프로그램의 장점은 다중 사용이 가능하다는것입니다. 프로그램 설치 후 Multi-Memu,와 Memu가있습니다.

Memu는 기본 첫번째를 실행하고 Multi-Memu는 미뮤앱플레이어-멀티미뮤를 실행하여 다중실행을 하도록 도와줍니다.

 

미뮤에서 사용했던것들은 게임,메신저,쇼핑앱등을 사용했었고 다 문제없이 작동됩니다.

가상스마트폰이라 전화기능은 없고요.사진,동영상등은 외부,내부에서 가져오기 내보내기가 가능합니다.

APK(앱패키징)이있다면 미뮤에다가 APK를 전송하여서 설치가 가능합니다.

반응형

리눅스 버젼별 링크

기타 도구/Utility 2021. 2. 9. 23:49
728x90

★ Cent Os 시리즈★ 
리눅스 cent os 7.0

<- 리눅스 cent os 7.0 버젼 다운 클릭

Cent Os 6.0

<- Cent os 6.0 버전 64비트 다운

--------------------------------------------------------- 
Θ페도라 시리즈Θ 

페도라 11 버젼

<- 리눅스 페도라 11 버젼 다운클릭

페도라 12 버젼 32비트

<- 페도라 12버젼 32비트 다운클릭

페도라 12 버젼 64비트

<- 페도라 12버젼 32비트 다운클릭

--------------------------------------------------------- 
♣우분투 시리즈 ♣ 

우분투 12.04.3 32비트

<- 우분투 12.04.3 32비트 버전 다운클릭

우분투 12.04,3 64비트

<- 우분투 12.04.3 64비트 버전 다운클릭

우분투 10.04.4 32비트

<- 우분투 10.04.4 32비트 버전 다운클릭

우분투 10.04.4 64비트

<- 우분투 10.04.4 64비트 버전 다운클릭
----------------------------------------------------------
◎ 데비안 시리즈 ◎

데비안 7.0 - part 1
데비안 7.0 - part 2

<- 데비안 7.0은 part 1,2,3 다 다운받으셔야돼요 

데비안 7.0 - part 3


---------------------------------------------------------- 
■ 약간은 구버젼들 ■ 

Pupy Linux

<- Pupy Linux 

우분투 7.04

<- 우분투 7.04 버전 다운 클릭 

G-os

<- G-os 버젼 다운 클릭 
----------------------------------------------------------
▶ Xubuntu ◀

Xubuntu 14.04.1 

32 bit

Xutbuntu 14.04.1

64bit

Xubuntu 12.04.4

32bit 

Xubuntu 12.04.4 

64bit
----------------------------------------------------------
☞ openSUSE ☜

openSUSE 13.1

32bit

opneSUSE 13.1

64bit

openSUSE 12.3 

32bit

openSUSE 12.3

64bit
----------------------------------------------------------
▦ Mageia ▦

Megaia 4.1 

32bit

Megaia 
4.1 

64bit
----------------------------------------------------------
▣ kail linux ▣

kail-linux-1.0.9

64bit

kail-linux-1.0.9

32bit

kali-linux-1.0.8

32bit

kali-linux-1.0.8

64bit
----------------------------------------------------------
♣ Android ♣

Android 4.2.2 jellybean
Android 4.4 kitkat
Android asus


-----------------------------------------------------------
『backtrack』 

backtrack5R3-KDE

32bit

backtrack5R3-KDE


===========================================================
∇windows7 ∇

windows7

full version
===========================================================
■ 설치에 필요한 유틸 ■ 

usb 부팅 디스크 만들기 

<- 클릭

 

링크 수정및 업데이트는 주기적으로 하고있습니다.

반응형