반응형 코스웨어/16년 스마트컨트롤러370 20160409_김가연_스터디일지_구조체의 정의 구조체에 대한 지식이 부족한 것 같아서 오늘은 구조체를 학습해 보았습니다. 458p 문제 22-1문자열 형태의 '종업원 이름'과 문자열 형태의 '주민등록번호' 그리고 정수 형태의 '급여정보'를 저장 할 수 있는 emlpoyee라는 이름의 구조체를 정의해 보자.그리고 나서 employee 구조체 변수를 하나 선언한 다음, 프로그램 사용자가 입력하는 정보로 이 변수를 채우자.그리고 마지막으로 구조체 변수에 채워진 데이터를 출력해보자. 이면지에 소스를 대강 적어보았습니다. 그 후에 비주얼 스튜디오에 소스를 재정렬 하면서 차근차근 옮겨보았습니다. 적어놓고 보니 소스가 생각보다 짧다고 생각했습니다.실행을 하여 보면보시는 것처럼 잘 실행이 됩니다! ★typedef을 할 필요는 없었지만 배웠던것이 생각나서 써보았습니.. 2016. 4. 9. 20160404-업무일지-허도경-로봇제어-시리얼제어-터미널 전역변수는 실행파일의 크기를 증가시킨다. 초기화 ex) BSS X int A; Data O int B = 1; 전역변수는 초기화하지 않으면 0으로 된다.전역변수앞에 static을쓰면 다른변수들의 접근이 불가하다.함수안에서 static사용가능 static은 사용하지않으면 버려진다. 분할 실행gcc -c ㅁ: ㅁ파일의 obj 만들기gcc -c ㅇ: ㅇ파일의 obj 만들기gcc -o ㅂ ㅁ.o ㅇ.o: ㅁ.o,ㅇ.o 파일들을 합쳐서 ㅂ파일 만들기----------------------------------------------------------------------------------------------------------------------------------Visual Studio 위와 같이 .. 2016. 4. 8. 20160405_김도관_업무일지_C언어기초_01 포인터 널포인터(Null Pointer) 쓰기전에 초기화 하는것이 좋음 잘못된 메모리 접근을 미연에 방지하기 위해 사용 Null = 0 을 의미 포인터와 배열 ArrayNameType.c 결과 : 배열 처음 시작과 첫번째요소의 주소는 동일함배열은 붙어져서 메모리 주소를 가짐 ArrayNamePointerOperation.c 결과 : 8번 : 각각 배열 첫번째 요소를 출력11번 : 더하고 난뒤 저장된 첫번째 요소 출력 ArrayNameIsPointer.c 결과 배열주소로 호출하거나 직접 변수를 호출하거나 그위치에는 동일한 값이 저장되어있음 포인터 연산 PointerOperationResult.c 결과 : 8과9번 : 주소 자체를 증가시킴11번 : 주소 출력15번 : 증가된 주소 출력 PointerBaseA.. 2016. 4. 7. 20160406_장진웅_업무일지_로봇제어_시리얼제어3 const char *P = "Test"; ("Test" = const char *)char const *P = "Test"; 2016. 4. 6. 20160328_업무일지_정우민_리눅스설정 리눅스 기초계정의 홈 디렉토리 내 .bashrc 파일의 #주석이 붙은 부분을 아래와 같이 수정 및 삽입 .vimrc 파일 수정후 위의 명령어들이 visual editor에 계속 적용된다. 비쥬얼 에디터로 main.c 소스 작성 :q! // vi 강제종료:wq // 저장후 종료 프리웨어 컴파일러 gcc (GNU is Not Unix) 프로젝트의 프리웨어(freeware) 컴파일러. 본래 C 언어용 컴파일러로 시작하였으므로 GNU C Compiler의 약자였으나 후에 여러 언어를 지원하면서 GNU Compiler Collection으로 개명했다. cc --version이라고 명령어를 쳐도 버전을 확인할 수 있다. // C Compiler 버전 gcc main main.c 는 main.c를 main이란 파일로.. 2016. 4. 6. 20160401-업무일지-허도경-로봇제어-터미널2 c언어copy ㅁ ㅇ: ㅁ파일 복사하여 ㅇ파일 만들기type ㅁ: ㅁ 파일열기type *.ㅁ: ㅁ이 들어간 모든파일열기type ㅁ ㅇ: ㅁ과 ㅇ 파일 열기----------------------------------------------------------------------------------라즈베리파이cat ㅁ: ㅁ파일열기cat ㅁ ㅇ:ㅁ,ㅇ파일 열기cat *ㅁ:ㅁ명이 들어간 모든파일 열기cat ㅁ>>ㅇ: ㅁ를 ㅇ파일 밑에 붙이기--------------------------------------------------------------------------------라즈베리파이를 통한 터미널통신#include #include #include #include #include #include #.. 2016. 4. 6. 20160331-업무일지-허도경-로봇제어-터미널 터미널터미널프로그램=Putty유닉스와 리눅스는 장치를 파일로 인식한다. /dev 장치설정 파일들이 들어있다.- 가능한 건드리지 말자.tty: tele type의 약자c: charactor device의 약어 stream과 같은 계념 가변데이터-최소 데이터량만 결정되어있고 최대는 결정되어 있지 않다.b: block device 위와 반대의 계념을 가진다. 즉 최대 데이터량이 결정되어있기 때문에 신중해야한다. 하드링크: 지우면 원본과 바로가기 둘다 지워진다.심블릭링크: 바로가기만 지워진다.POSIX:운영체제를 정의(가이드 라인)를 정하는 단체--------------------------------------------------------------------------------------------cd.. 2016. 4. 6. 20160405_장진웅_업무일지_로봇제어_시리얼제어2 열혈 C (301 page) char str1[] = "My String";char str1[]는 Stack 영역이고, "My String"은 Code 영역이다. #include int main(void) { char str1[] = "My String"; char *str2 = "Your String"; printf("%s %s \n", str1, str2); printf("str1 address: %p \n", str1); printf("main address %p \n", main); printf("str2 address: %p \n", str2); printf("stack address: %p \n", &str2); str2 = "Our String"; str1[0] = 'X'; printf("%.. 2016. 4. 5. 20160404_장진웅_업무일지_로봇제어_시리얼제어 int A;int B = 1;전역변수 초기화예 BSS X A Data O B 즉, 전역변수는 초기화를 하지 않으면 자동적으로 0이 들어가게 된다. 전역변수 계속.#include int A[1024*1024]={1,};int main(void){return 0;}이렇게 해서 컴파일 하면 4메가바이트가 나온다. 즉, BSS에서 알아서 0값을 넣어버린 것이다. dword ptr은 4바이트word ptr은 2바이트 //설명은 최대한 빨리 보충하겠습니다. 2016. 4. 5. 이전 1 ··· 7 8 9 10 11 12 13 ··· 42 다음 728x90 반응형