본문 바로가기

기초공부

[vscode/MAC] ld: 1 duplicate symbol for architecture x86_64 오류 뜰 때 일단 시험이 안 끝나서 여기에 포스팅,,, 그림1 처음에 vscode C++ 설정을 마치고 나면 그림1과 같이 실행된다. vscode 공식 문서를 읽다가 "You can modify your tasks.json to build multiple C++ files by using an argument like "${workspaceFolder}/*.cpp" instead of ${file}." 라고 하길래 tasks.json 파일을 수정했다. 되는지 실제로 시험해 봤더니 아래와 같은 오류가 떴다. 그림2 그림3 이전에는 실행 되었던 파일들도 안 된다. 여기에서는 XCode의 경우지만 main이 중복돼서 그렇다고 한다. 생각해보니 보통 c++ 환경에서는 한 프로그램을 다중 파일로 구성시켜 실행시킨다. 공식 문..
[JAVA]접근자/설정자 메소드도 상속될까? 자바 공부하면서 의문이 생겼다. 자식 클래스도 부모의 접근자 메소드를 상속 받을까? 그래서 실험해 보았다. 준비물 부모 클래스 public class Person { private String name; // private로 설정하면 name에는 접근자/설정자 메소드만 접근할 수 있다. public Person (String n) { // 생성자 정의 name = n; } public String getName() {return name;} // 부모 접근자 메소드 public void setName(String name) {this.name = name;} // 부모 설정자 메소드 } 자식 클래스 class Customer extends Person { private String id; public C..
[C]자료형과 printf, scanf 서식 정리 맨날 까먹어서 인터넷 뒤지길래 정리함 1. 자료형 정리 정수형char1바이트-128 이상 +127 이하 unsigned char0 이상 (128+127) 이하 short2바이트-32,768 이상 +32,767 이하 unsigned short0 이상 (32,768+32,767) 이하 int4바이트-2,147,483,648 이상 +2,147,483,647 이하 unsigned int0 이상 (2,147,483,648+2,147,483,647) 이하 long4바이트-2,147,483,648 이상 +2,147,483,647 이하 unsigned long0 이상 (2,147,483,648+2,147,483,647) 이하 long long4바이트-9,223,372,036,854,775,808 이상 +9,223,37..
[SQL]포스트 목록 MySQL LENGTH, CHAR_LENGTH 함수 비교 ASCII, ORD, CHAR 함수 정리
[MySQL]ASCII, ORD, CHAR 함수 정리(UTF-8) 모든 포스트 목록 ASCII, ORD, CHAR 함수 정리 ASCII : 문자열의 가장 왼쪽 문자의 아스키 코드 값을 반환하는 함수 ORD : 아스키 코드 값을 반환하는 함수 (문자열의 가장 왼쪽 문자가 멀티바이트 문자일 경우, 공식을 이용해 계산합니다. 멀티바이트 문자가 아닐 경우에는 ASCII 함수와 동일합니다.) 예시 멀티바이트 문자가 아닐 경우 멀티바이트 문자일 경우 다음과 같이 출력됩니다. 이는 함수가 읽어들이는 바이트의 수가 다르기 때문입니다. UTF-8 방식에서 문자 '가'는 11101010 10110000 10000000로 표현됩니다. ord 함수는 이를 10진수로 변환하여 15380608로 출력하고, ascii 함수는 왼쪽에서 1바이트를 해석하여 234(=11101010)를 출력합니다. ..
[MySQL]LENGTH, CHAR_LENGTH 함수 비교 모든 포스트 목록 데이터베이스 캐릭터셋 환경 status 명령어로 사용하고 있는 데이터베이스 환경의 캐릭터셋을 알 수 있습니다. (캐릭터셋 : 사용하는 언어를 표현하기 위한 문자들의 집합) UTF-8 방식으로 인코딩하고 있음을 알 수 있습니다. (인코딩 : 컴퓨터가 이해할 수 있는 바이트와 매핑해 주는 것) UTF-8방식은 최대 3바이트를 사용하며 한글을 3바이트로 저장합니다. LENGTH, CHAR_LENGTH 함수 비교 LENGTH : 문자열의 바이트 길이를 가져오는 함수 CHAR_LENGTH : 문자열의 길이를 가져오는 함수 예시 한글은 한 글자를 표현하기 위해서 3바이트를 사용하므로 LENGTH 함수를 사용하면 6을 출력합니다. CHAR_LENGTH 함수를 사용하면 문자열의 길이인 2를 출력합니다..
[C]상수형태의 문자열을 매개변수로 전달할 때 문득 이런 생각이 들었다. 함수를 정의할 때 문자열의 매개변수를 정의하면 포인터 형식이나 배열 형식이나 똑같이 취급한다. 그렇다면 실제로 포인터나 배열 형식의 문자열을 전달한다면 어떻게 취급할까. 포인터 형식으로 취급할까, 문자열 형식으로 취급할까. 궁금해서 실제로 간단하게 실험해보았다 배열 형식의 문자열과 포인터 형식의 문자열을 함수에 인수로 전달하였다. 결과는 함수를 사용하지 않았을 때와 했던 실험과 똑같은 결과가 나왔다.(이전 실험 참고) 이 결과를 놓고 생각해보았다. 함수를 정의할때의 매개변수의 형식은 실제 문자열에 어떠한 영향을 끼치지 않는다고 당연하게 생각할 수 있었다. 궁금증을 해결할 수 있어 원래는 함수의 매개변수를 정의한 형식이 배열일 때도 해봐야 했지만 실험을 끝냈다.
[C]문자열의 길이를 체크할 땐 strlen 함수를 사용하자 맨날 까먹고 sizeof 연산자를 사용해서 적어놓는다. sizeof 연산자를 사용하면 포인터로 선언한 문자열은 주소의 크기인 4바이트를 출력하고 str2는 원소의 개수+1(NULL)을 출력한다. 그러니까 strlen함수를 쓰자.