전체 글 81

정리 - 2 -

swap 함수swap ( *a, *b); a,b 를 바꿈: 구현은 내가 해야함 putchar 함수단일 문자를 출력기본형 : int putchar(int char); 반환 int , 출력: 아스키값> 문자putchar(65); == putchar('A'); 포인터 후위연산char str[100]="hello world\n"; char *pstr = str;//pstr = str 의 시작 주소 ( ex) 0x12)//pstr++ = pstr의 다음 주소(0x13 // char형 이므로 1 byte)putchar(*pstr++) : 문자 출력후 ++putchar (*(pstr++)) ++ 한걸 출력 while문에 () 조건이 문자로 오면 아스키값으로 0인지 1인지 확인 2진수,16진수 &a=0x7ffee12a..

C언어 2024.11.11

11718번

1. 100 줄을 출력 해야함 > 반복문 사용2. fgets 로 받음 > 줄바꿈까지 받아버림 + 받아올 문자열 없으면 NULL 반환3. strcspn(line , " \n" ) : 문자열에서 그 문자의 배열 숫자 반환 > 그 값을 \0 으로 만듬// 입력조건 :  알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다4. isspace() : 공백 제거 // 공백이면 true5. strlen(line) - 1 :// arr[5] = "hello";  //  마지막 arr[4] = 'o'; , arr[5] = '\0'; // strlen(arr) = 5  >> 마지막 끝문자 확인하려면 > strlen(arr) -1   #include #include #include ..

C언어/백준 2024.11.10

5622

1. int arr[3] = {3,5,6};   sizeof (arr) = 12 // 4 + 4 + 42. eng[i] == one[i]  i 가  배열 범위 초과시 문제생김 > 문자열에서 strchr() ' 문자' , strstr() ' 문자열'3. 문자열길이 : strlen4. 배열초기화 : str[] = {};, str[] = {0};5. 배열 과 문자열 문자열: \0 으로 끝나는 문자 배열 char you[] = " happy";     // 자동으로 끝에 \0 이 추가됨 char you[] = { 'h','a'.'p','p','y'); // 배열 이므로 %s 로 출력하면(문자열) 제대로 안나옴> char you[] = { 'h','a'.'p','p','y','\0'); // 문자열>> strle..

C언어/백준 2024.11.09

1장 . 역사,장단점,난해한 C (8퀸문제),,

1UNIX (운영체제) : Assembly - B - NB > C(언어) " portability "  C로 UNIX 재구성 >  C89 or C90 > C 99 C기반 언어      C++ : C + classes, 객체지향( oop)     java : C++ 기반     C#  : Cpp + java     perl : 간단 > C특징 C로 배워야하는 이유1. C의 근본적인 특징 파악 > 다른 C 기반 통찰 가능2. C가 오래돼서 자료들이 많음3. 소프트웨어 개발에 많이사용4. C 의 단순성 > 메모리,처리능력 한정 될때 유용 > 임베디드 장점1. 효율성 : 제한된 메모리2.이식성 : 컴퓨터의 기반 > 대부분 C3. 강력함 : 짧더라도4. 융통성 : 형변환,, 버그 조심5. Standard libr..

C언어/C - knk 2024.11.09

채팅프로그램 이론

프로토콜 ( 통신 규약) : 통신할때 하나하나 의미들, 약속ex) 랜선 ( 랜선도 약속: 8개 선으로 a로는 뭘하고 b로는 뭘하고,,) 1. TCP 통신a가 b로 패킷 하나 날림 > 그걸 잘 받았는지 또 패킷 > 확인 받는 절차 : 복잡, 안전성 있음 (ex) 파일 다운 2. UDP 통신 패킷 빠르게 날리기만함 > 확인 절차 없음 (ex) 게임, 실시간 스트리밍3. 소켓 ex) 충전 타입(c ,8 , 5핀) ,돼지코, 220v  > 이런것도 다 통신 규약 여러가지 hw 들이 하나의 구멍(충전기 꼽는 그 두개 구멍)으로 통신 할 수 있도록 해주는것 소켓단 2가지1. 서버 : 서비스 제공   : 소켓을 열고 리슨 하고 있는 상태2. 클라이언트 : 서비스를 받아감 : 소켓을 열고 ip 서버주소 로 connec..

카테고리 없음 2024.11.08

파일 입출력, 표준입출력

언제 사용?1. 컴파일러 만들때2. 그림 파일 저장 해석자료는 DB로 저장, SQL 사용3. 옵션 지정 할때컴파일 따로 안하고 옵션에 따라 실행되도록 >> 실제에선 사실 라이브러리 가져다씀 하드웨어마다 데이터 저장 방법은 다 다름 ( ssd, hdd, 플로피디스크 flash memory,,,,) 임베디드 > 데이터시트를 다 읽어봐야함 한번에 얼마나 저장, 몇번 기록, 통신방식, 패킷 그래야 1byte 를 저장할 수 있음 >> 계층(단계) 을 나눔 hw driver 운영체제> read write open  >함수를 쓰면 운영체제에서 누군가 만든 driver 구현한거를 이용해서 hw에 접근 스트림write : hdd에 기록 > 때때마다 하면 굉장히 비효율적,, (ex) hdd가 한공간에 8byte > w..

카테고리 없음 2024.11.08

각종 정리 -1

크로스컴파일(A)cpu > 운영체제(리눅스) > gcc ( program1 ,p2, p3 ..)(B) cpu > 임베디드 (Arm) > 전용 컴파일러필요, 자체실행불가( 시계 같은것)>> 크로스컴파일러의 등장A-gcc(A cpu에서 동작) > 내가만든 c코드>> B cpu에서 동작하는 기계어로 번역 = A cpu 운영체제에서는 동작 x ex) apt-get install gcc-arm-linux-gneabi리눅스에서 동작하는 gcc 이긴 하지만 결과물: arm용크로스컴파일에는 gdb 디버거만 제공 gdb 명령어gcc -g program.cgdb a.outrun , lb 15 // 15번째줄에 breakpoint 소스코드 저장 과정하드디스크 > a.out  저장, 실행하면 > 메모리로 옮김메모리 내부에는 ..

C언어 2024.11.08

2908 : 상수

문제수의 크기 비교734 893 을437 398 로 읽음> 437 이 가장 큰 수-----------------------------------------------해결백의 자리 : N * 10^2     >    /100십의 자리 : N * 10^1     >    (N/10)%10 * 10일의 자리 : N * 10^0     >    (N%10)*100// 뒤집으려면..                  다 더하면 > 역수> if 문 쓰면 끝 // ' / ' 몫 , ' % ' 나머지// main 함수의 return 0 으로 잘 끝내기// 23을 뒤집으면 023 > 320이 됨의 유의// 거꾸로 읽는다고 한걸 빼먹으면 안됨.입력 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. >> 이 경우..

C언어/백준 2024.11.07

[c] 채팅프로그램

// 검은색 : 서버.c , 파란색 : 클라.c1. 서버측 서버소켓 (한개) // 지금은 비어있음2. 소켓 구조체 : ip, port, 주소,,3. bind : 소켓 에 구조체를 넣음4. listen // 사람들 오기를 기다림A. 클라측 소켓 // 비어있음B. 소켓 구조체 // 서버와 동일 IP, 주소,port // 127.0.0.1 로컬 C. connect   C-1) 클라측 소켓 에 구조체 넣음  C-2) listen() 하고 있는 파일과 연결5. accept () > 서버측 클라소켓에저장  5-1) 서버측클라소켓 > 전체용 소켓(a) (전역)  5-2) 서버측클라소켓 > 쓰레드공간(b)6. (b) read: 소켓으로 오는 메세지를 읽음 > 출력7. (a) 로 메세지와 현재 소켓을 넘김 (함수)D. ..

C언어 2024.11.07

makefile (script language)

기본틀명령어: 의존파일들       gcc 옵션 실행파일명 소스파일들>>test : main.o sum.o      gcc -o test main.o sum.o매크로 : 명령어, 파일들 조차 간편하게  EXE = 파일명 OBJS = .o 파일들 $@ : 현재 타겟 $^ : 의존성 파일들 -f : 파일이 없어도 안전하게 작동하게 해줌의존파일들이 없으면 > 명령어로 따로 쳐줘야함 ex) make clen CROSS= CC = $(CROSS)gcc : (gcc 로 선언)CFLAGS = -I./include -g  // 디렉토리 지정 , -g : 디버그정보DEFINES= -DDEBUG  //define 설정 CFLAGS = -./include $(DEFINES)   // 현 디렉토리내 include 에 defi..

C언어 2024.11.07