'분류 전체보기'에 해당되는 글 84건

  1. 2010.06.06 상수의 표기
  2. 2010.06.06 sizeof 연산자를 이용한 Data Type 크기 확인
  3. 2010.06.05 Data type 사이의 대입 및 출력 형식
  4. 2010.06.05 cl.exe 옵션 정리
  5. 2010.06.05 GCC 옵션 정리
  6. 2010.06.05 변환문자
  7. 2010.06.05 쉘프로그래밍
  8. 2010.06.04 printf() 함수 내부
  9. 2010.05.31 라이브러리 만들기
  10. 2010.05.31 gdb 사용법

상수의 표기

|

#include <stdio.h>

int main()
{
    signed int si_num = 43;
    unsigned int ui_num = 43U;

    signed long int sli_num = 43L;
    unsigned long int uli_num = 43UL;

    float f_num = 43.0F;
    double d_num = 43.0F;
    long double ld_num = 43.0L;

    printf("CONSTANT NOTATION\n\n");

    printf("Integer Type\n");
    printf("%8s %11s %5s (%3s) : %d\n", "signed", "int", "43", "%d", si_num);
    printf("%8s %11s %5s (%3s) : %u\n", "unsigned", "int", "43U", "%u", ui_num);
    printf("%8s %11s %5s (%3s) : %ld\n", "signed", "long int", "43L", "%ld", sli_num);
    printf("%8s %11s %5s (%3s) : %lu\n", "unsigned", "long int", "43UL", "%lu", uli_num);

    printf("\n");

    printf("Real Number Type\n");
    printf("%8s %11s %5s (%3s) : %f\n", "", "float", "43.0F", "%f", f_num);
    printf("%8s %11s %5s (%3s) : %lf\n", "", "double", "43.0F", "%lf", d_num);
    printf("%8s %11s %5s (%3s) : %Lf\n", "", "long double", "43.0L", "%Lf", ld_num);

    return 0;
}

RESULT-------------------------------------------------------------------------------------------------------------

CONSTANT NOTATION

Integer Type
  signed         int    43 ( %d) : 43
unsigned         int   43U ( %u) : 43
  signed    long int   43L (%ld) : 43
unsigned    long int  43UL (%lu) : 43

Real Number Type
               float 43.0F ( %f) : 43.000000
              double 43.0F (%lf) : 43.000000
         long double 43.0L (%Lf) : 43.000000

RESULT-------------------------------------------------------------------------------------------------------------

'C' 카테고리의 다른 글

16진수 0xffffffff의 값 (signed and unsigned)  (0) 2010.06.06
형식 지정자  (0) 2010.06.06
sizeof 연산자를 이용한 Data Type 크기 확인  (0) 2010.06.06
Data type 사이의 대입 및 출력 형식  (0) 2010.06.05
cl.exe 옵션 정리  (0) 2010.06.05
And

sizeof 연산자를 이용한 Data Type 크기 확인

|

#include <stdio.h>

int main()
{
    printf("Integer Type:\n");
    printf("%8s %11s : %2d\n", "signed", "char", sizeof(signed char));
    printf("%8s %11s : %2d\n", "unsigned", "char", sizeof(unsigned char));
    printf("\n");
    printf("%8s %11s : %2d\n", "signed", "short int", sizeof(signed short int));
    printf("%8s %11s : %2d\n", "unsigned", "short int", sizeof(unsigned short int));
    printf("\n");
    printf("%8s %11s : %2d\n", "signed", "int", sizeof(signed int));
    printf("%8s %11s : %2d\n", "unsigned", "int", sizeof(unsigned int));
    printf("\n");
    printf("%8s %11s : %2d\n", "signed", "long int", sizeof(signed long));
    printf("%8s %11s : %2d\n", "unsigned", "long int", sizeof(unsigned long));

    printf("\n");

    printf("Real Number Type:\n");
    printf("%8s %11s : %2d\n", "", "float", sizeof(float));
    printf("%8s %11s : %2d\n", "", "double", sizeof(double));
    printf("%8s %11s : %2d\n", "", "long double", sizeof(long double));

    return 0;
}

RESULT-------------------------------------------------------------------------------------------------------------
Integer Type: signed char : 1 unsigned char : 1 signed short int : 2 unsigned short int : 2 signed int : 4 unsigned int : 4 signed long int : 4 unsigned long int : 4 Real Number Type: float : 4 double : 8 long double : 12
RESULT-------------------------------------------------------------------------------------------------------------

'C' 카테고리의 다른 글

형식 지정자  (0) 2010.06.06
상수의 표기  (0) 2010.06.06
Data type 사이의 대입 및 출력 형식  (0) 2010.06.05
cl.exe 옵션 정리  (0) 2010.06.05
GCC 옵션 정리  (0) 2010.06.05
And

Data type 사이의 대입 및 출력 형식

|
Data type 구분

정수형 : char, short, int, long
실수형 : float, double, long double


대입 연산시 경고 메시지 출력 유무

No Warning
char, short, int, long <--> char, short, int, long
float, double, long double <--> float, double, long double


입력 형식 지정사 사용시 경고 메시지 출력 유무

Warning
char * --> %d (int *)
int * --> %c (char *)

형식 지정자 사용시 경고 메시지 출력 유무

No Warning
char, short, int --> %c, %d, %hd
long --> %ld
float, double --> %f, %lf
long double --> %Lf

'C' 카테고리의 다른 글

상수의 표기  (0) 2010.06.06
sizeof 연산자를 이용한 Data Type 크기 확인  (0) 2010.06.06
cl.exe 옵션 정리  (0) 2010.06.05
GCC 옵션 정리  (0) 2010.06.05
변환문자  (0) 2010.06.05
And

cl.exe 옵션 정리

|
MS C Compiler

명령어 : cl
>cl test.c
>dir
test.c
test.exe


옵션 :

/P : Preprocessing 후 .i 파일만 생성
>cl /P test.c
>dir
test.c
test.i


/Fa : Compiling 후 .asm 파일, .obj 파일, .exe 파일 생성
>cl /Fa test.c
>dir
test.asm
test.c
test.exe
test.obj


/c : Assembling 후 .obj 파일만 생성
>cl /c test.c
>dir
test.c
test.obj

'C' 카테고리의 다른 글

sizeof 연산자를 이용한 Data Type 크기 확인  (0) 2010.06.06
Data type 사이의 대입 및 출력 형식  (0) 2010.06.05
GCC 옵션 정리  (0) 2010.06.05
변환문자  (0) 2010.06.05
printf() 함수 내부  (0) 2010.06.04
And

GCC 옵션 정리

|
GCC (GNU Compiler Collection)

명령어 : gcc
$ gcc test.c
$ ls
a.out  test.c


옵션 :

-E -o 파일명 : Preprocessing 후 .i 파일만 생성 (-o 파일명을 하지 않으면 전처리 내용을 화면에 출력함)
$ gcc -E -o test.i test.c
$ ls
test.c  test.i


-S : Compiling 후 .s 파일만 생성
$ gcc -S test.c
$ ls
test.c  test.s


-c : Assembling 후 .o 파일만 생성
$ gcc -c test.c
$ ls
test.c  test.o


그 외 옵션 :

--save-temps : .i, .s, .o, 실행 파일을 모두 생성

-g : Debugging 정보까지 포함시켜 컴파일

-l : Library 파일이름을 지정 (소문자 엘)

-L : Library가 위치한 디렉토리를 지정

-Wall : 모든 경고 메시지 출력

예제) 현재 디렉토리에 mylib.o 또는 mylib.so 파일이 있는 경우
$ gcc --save-temps -Wall -g -lmylib -L. -o test test.c

중간 단계의 모든 파일을 생성하고 모든 경고 메시지를 출력하며 디버깅 정보를 포함하여 컴파일한다.

'C' 카테고리의 다른 글

sizeof 연산자를 이용한 Data Type 크기 확인  (0) 2010.06.06
Data type 사이의 대입 및 출력 형식  (0) 2010.06.05
cl.exe 옵션 정리  (0) 2010.06.05
변환문자  (0) 2010.06.05
printf() 함수 내부  (0) 2010.06.04
And

변환문자

|
int short long
decimal : %d %hd %ld
octal %o %ho %lo
hexa %x %hx %lx
unsigned %du %hu %lu


float double(long float) long double
%f %lf

#include <stdio.h>

int main()
{
    int inum;
    int *ip;
    short *sp;

    inum = 0x0F5A0B43;
    ip = &inum;
    printf("%-4s : %10x,\t%3s : %10p\n", "inum", inum, "*ip", ip);

    sp = (short *)ip;
    printf("%-4s : %10p,\t%3s : %10x\n", "sp", sp, "*sp", *sp);

    sp++;
    printf("%-4s : %10p,\t%3s : %10x\n", "sp", sp, "*sp", *sp);

    return 0;
}

'C' 카테고리의 다른 글

sizeof 연산자를 이용한 Data Type 크기 확인  (0) 2010.06.06
Data type 사이의 대입 및 출력 형식  (0) 2010.06.05
cl.exe 옵션 정리  (0) 2010.06.05
GCC 옵션 정리  (0) 2010.06.05
printf() 함수 내부  (0) 2010.06.04
And

쉘프로그래밍

|
터미널을 열고 아래와 같이 입력해보자.

$ echo "Hello world"
Hello world
$

echo는 '메아리' 또는 '울려퍼지다'라는 뜻을 가지고 있다. 따라서 뒤에 오는 문자열을 출력하는 기능을 수행한다.

이번에는 변수를 사용해 보자.

C언어처럼 자료형을 붙일 필요도 없고 선언할 필요도 없다. 그냥 쓰고 싶을 때 변수 이름만 쓰고 뒤에 값을 넣으면 된다.

아래와 같이 입력
$ str="Hello world"
$ echo $str
Hello  world
$

#주의사항
1. 변수에 값을 넣을 때에는 변수 앞에 $를 쓰지 않고, '변수명=값' 이렇게 붙여써야 한다.
2. 변수에 들어있는 값을 이용할 때에는 $를 붙여주어야 한다.

기본적인 사용법을 알았으니 간단한 쉘스크립트 파일을 만들어보자.

$vi ex01.sh
#!/bin/bash

str = "Hello world"
echo $str
:wq
$ chmod 755 ex01.sh
$ ./ex01.sh
Hello world










'linux' 카테고리의 다른 글

apt-get  (0) 2010.10.30
gst  (0) 2010.10.22
SHELL  (0) 2010.08.22
라이브러리 만들기  (0) 2010.05.31
gdb 사용법  (0) 2010.05.31
And

printf() 함수 내부

|
printf 함수
내부적으로 fprintf(stdout, string, mode) 호출
반환자료형은 int, 반환값은 화면에 출력된 문자의 갯수

./a.out > out.txt : stdout으로 설정된 문자열만 파일로 저장, 나머지는 화면으로 출력
./a.out 1> out.txt : stdout으로 설정된 문자열만 파일로 저장, 나머지는 화면으로 출력
./a.out 2> out.txt : stderr로 설정된 문자열만 파일로 저장, 나머지는 화면으로 출력

예전 슈퍼컴퓨터에서는 stdout을 모니터, stderr을 tape(?)로 지정하였으나, 현재에는 둘 다 모니터로 지정되어 있다.

fpin = fopen(filename, mode) --> fopen이 생성한 file descripter(?)의 시작주소를 넘김...파일 열지 못했을 경우 0을 넘김

int A = 100; 은 두가지 작업을 함
1. 메모리 확보
2. cpu에서 메모리로 값 전송

whlie(!(feof(fpin)) --> while(0 == feof(fpin))

리눅스에서는 장치도 파일 형식으로 인식함.

NULL은 0으로 define되어 있음 (매크로 : #define EOF (-1)

exit(1) - 모든 프로그램을 닫아버림

fscanf(...) -> 파일 끝에서 EOF 반환, 끝이 아닌 경우의 반환값은???

fclose(stdin) -> 입력받지 않고 그냥 다음 명령 수행
fclose(stdout) -> 출력하지 않고 그냥 다음 명령 수행
해당 파일을 닫는 동작임. stdin, stdout, stderr도 파일 형식으로 인식

'C' 카테고리의 다른 글

sizeof 연산자를 이용한 Data Type 크기 확인  (0) 2010.06.06
Data type 사이의 대입 및 출력 형식  (0) 2010.06.05
cl.exe 옵션 정리  (0) 2010.06.05
GCC 옵션 정리  (0) 2010.06.05
변환문자  (0) 2010.06.05
And

라이브러리 만들기

|
http://rohhy.kangwon.ac.kr/attach/roh/lecture/cppsrc/c/cchap1111.htm 헤더파일 설명
#include <stdio.h>

int input()
{
int in;
printf("What is your favorite number: ");
scanf("%d", &in);
return in;
}
:wq

$ vi output.c
#include <stdio.h>

void output(int out)
{
printf("Your favorite number is %d.\n", out);
}
:wq

$ vi main.c
#include <stdio.h>

int main()
{
int num;
num = input();
output(num);
return 0;
}
:wq

$ vi input.h
extern int input();
:wq

$vi output.h
extern void output(int)
:wq

$ ls
input.c  input.h  main.c  output.c  output.h
$ gcc -c input.c output.c
$ ls
input.c  input.h  input.o  main.c  output.c  output.h  output.o
$ ar r libmylib.a input.o output.o
ar: creating libmylib.a
$ ls
input.c  input.h  input.o  libmylib.a  main.c  output.c  output.h  output.o
$ ar s libmylib.a
$ ls
input.c  input.h  input.o  libmylib.a  main.c  output.c  output.h  output.o
$ ar t libmylib.a
input.o
output.o
$ ls
input.c  input.h  input.o  libmylib.a  main.c  output.c  output.h  output.o
$ gcc -o main main.c -lmylib -L.
$ ls
input.c  input.h  input.o  libmylib.a  main  main.c  output.c  output.h  output.o
$ ./main
What is your favorite number: 3
Your favorite number is 3.

'linux' 카테고리의 다른 글

apt-get  (0) 2010.10.30
gst  (0) 2010.10.22
SHELL  (0) 2010.08.22
쉘프로그래밍  (0) 2010.06.05
gdb 사용법  (0) 2010.05.31
And

gdb 사용법

|
$ gdb [실행 파일]
$ gdb [실행 파일] [core]
$ gdb [실행 파일] [processid]

gcc -g -o test test.c 로 -g 옵션을 주고 컴파일해야 함

list [[file:]n|func]
help [name]
break [[file:]n|function] <--> del (단축키 d)
clear [[file:]n|function]
run [arglist]
print expr
disp expr <--> undisp
continue [n] (단축키 c)
next [n]
step [n]
backtrace (단축키 bt)
up
down
return (단축키 ret)
quit


· list [[file:]n|func]
source file의 내용을 10줄씩 보여준다. 행 번호를 지정하면n번 행의 주변 10라인이 출력된다.
함수이름을 지정하면 그 함수의 내용이 출력된다. 두 개의 행 번호를 ‘,’로 분리해서 쓰면
첫 행 번호에서 시작해서 두 번째 행 번호까지의 소스가 출력된다.
· help [name]
name으로 지정된 gdb의 command나 관련 정보를 보여준다.
· break [[file:]n|function] <-> d (del)
지정된 file의 n번 행 또는 function에 breakpoint를 설정한다.
· clear [[file:]n|function]
지정된 file의 n번 행 또는 function에 설정된 breakpoint를 제거한다.
· run [arglist]
program을 시작한다.
· print expr
expr의 값을 한번 보여준다.
· disp expr <-> undisp
expr의 값을 실행되는 동안 계속 보여준다.
· c [n] (또는 continue)
breakpoint등에 의해 멈춰진 프로그램의 실행을 계속한다. n이 지정될 경우, 이후 n-1번은
breakpoint는 무시하고, n번째 breakpoint에 걸릴 때 멈춘다.
· next [n]
멈춰진 프로그램에서 프로그램의 다음 n(default=1)개의 문장을 실행하고 다음 번에 실행할
문장을 출력한다. 함수일 경우 함수 전체를 실행한다.
· step [n]
멈춰진 프로그램에서 프로그램의 다음 n(default=1)개의 문장을 실행하고 다음 번에 실행할
문장을 출력한다. 함수일 경우, 함수 내부로 들어가 한 문장씩 실행한다.
· bt (또는 backtrace)
program에서 function들이 불린 순서의 program stack을 보여준다.
· up
현재의 함수를 호출한 함수를 보여준다.
· down
현재의 함수가 호출한 함수를 보여준다.
· ret (또는 return)
현재 함수를 반환하며 빠져나간다.
· quit
gdb를 종료한다.

'linux' 카테고리의 다른 글

apt-get  (0) 2010.10.30
gst  (0) 2010.10.22
SHELL  (0) 2010.08.22
쉘프로그래밍  (0) 2010.06.05
라이브러리 만들기  (0) 2010.05.31
And
prev | 1 | ··· | 5 | 6 | 7 | 8 | 9 | next