반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- ACK Polling
- Cortex-M3
- asynchronous fifo
- LEC
- 곱셈기 설계
- BSS
- LinkedList
- keynote 사용법
- i2c
- keynote 도형 회전
- FIFO 설계
- keynote 도형 복사
- Async FIFO
- booth multiplier 설계
- 비동기 FIFO 구조
- booth multiplier
- cadence conformal eco
- SPI mode
- keynote
- Sync FIFO
- C언어
- booth algorithm
- c
- ARM
- malloc
- lec check
- 연산 가속기 설계
- Keynote 표
- ISR
- 자료구조
Archives
- Today
- Total
JINTBEAT Design Life
C언어 - 함수와 포인터에 대한 이해 본문
반응형

* lu는 일반적인 C 언어나 다른 프로그래밍 언어에서 **정식 자료형(type)**이 아닙니다.
하지만 "lu"는 **출력 포맷 지정자(format specifier)**로 자주 등장하며, 특히 printf 같은 함수에서 사용됩니다.
📌 "lu"가 의미하는 것 (%lu)
- "lu"는 printf에서 **형식 지정자(format specifier)**로 쓰입니다.
- 구체적으로는:
printf("%lu", variable);
여기서 %lu는:
- l → long 또는 long unsigned의 줄임
- u → unsigned (부호 없는 정수)
즉,
👉 %lu는 unsigned long 타입의 값을 출력하라는 의미입니다.
🔍 참고로 자주 쓰이는 관련 포맷들
포맷의미
| %d | int (signed) |
| %u | unsigned int |
| %ld | long int |
| %lu | unsigned long int |
| %lld | long long int |
| %llu | unsigned long long int |
결론
- lu는 자료형이 아니라, 포맷 문자열 %lu의 일부입니다.
- %lu는 unsigned long 타입의 값을 출력할 때 사용됩니다.


sizeof는 C 언어에서 **데이터 타입 또는 변수의 크기(바이트 단위)**를 계산해주는 컴파일 타임 연산자입니다.
함수처럼 보일 수 있지만 함수가 아니라 연산자입니다.
✅ 기본 문법
sizeof(expression) // 괄호 O
sizeof type // 괄호 생략 가능 (단, type인 경우만)
sizeof type // 괄호 생략 가능 (단, type인 경우만)
- sizeof(변수)
- sizeof(자료형)
- sizeof 배열
- sizeof 포인터
- sizeof(struct) …
📌 반환값
- sizeof는 size_t형의 값을 반환합니다.
- typedef unsigned long size_t; (플랫폼에 따라 다름)
- 즉, 0보다 크고 부호 없는 정수형입니다.
✅ 마무리 요약
항목설명
| 역할 | 변수나 타입의 크기를 구함 |
| 반환값 | size_t (부호 없는 정수형) |
| 계산 시점 | 컴파일 타임 |
| 함수? | ❌ 함수 아님 → 연산자임 |
| 주의 | 배열과 포인터는 구분해야 함 |


함수를 통해 배열에 접근하려면, 배열의 시작주소를 포인터로 전달하면 된다.

int param[]과 int *param은 완전히 동일한 선언이다. 일반적으로 배열의 주소 값이 인자로 전달될 때에는 int param[] 형태의 선언을 주로 많이 사용한다.
main 함수의 int *ptr = arr을 int ptr[] = arr로 대체는 불가능하다.
참고) 배열의 주소 값을 인자로 전달받는 매개변수는 포인터 변수이기 때문에 이를 대상으로 sizeof 연산을 할 경우 배열의 크기가 반환되지 않고 포인터 변수의 크기가 반환된다. 이렇듯 함수 내에서는 인자로 전달된 배열의 길이를 계산할 수가 없기 때문에 배열의 크기나 길이 정보도 함께 인자로 전달해야 한다.
반응형
'🖥️ - C language' 카테고리의 다른 글
| C언어 공부 - 포인터 변수가 참조하는 대상의 변경을 허용하지 않는 const 선언 (0) | 2025.05.18 |
|---|---|
| C언어 - Call by value vs Call by Reference (0) | 2025.05.18 |
| C언어 공부 - 포인터 문제풀이 (0) | 2025.05.18 |
| C언어 - 포인터 배열 (0) | 2025.05.12 |
| C언어 - 포인터 연산 (0) | 2025.05.12 |