ν°μ€ν 리 λ·°
λ ν νΌμ μ νκ²½ κ°μ¬λμ Secure & Generic C κ°μλ₯Ό λ£κ³ , μ 리ν λ΄μ©μ λλ€.
ν΄λΉ λ΄μ©μ μ μκΆμ μ νκ²½ κ°μ¬λμκ² μμ΅λλ€.
μ°μ°μ μ°μ μμ
μ°μ°μ μ°μ μμλ₯Ό μμ§ λͺ»νκ³ , μ μ ν νμ©νμ§ λͺ»νλ€λ©΄ μμΉ μλ κ²°κ³Όλ₯Ό μ΄λν μ μλ€. ν¬μΈν°λ₯Ό μ¬μ©νλλΌλ `()`μ λ°λΌ λ€λ₯Έ κ²°κ³Όλ₯Ό λ§λ€κ² λλ€.
#include <stdio.h>
int main()
{
int *p;
int num[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
p = num;
*p++;
(*p)++;
*++p;
++*p;
return 0;
}
κ°λ¨ν μ½λμ΄μ§λ§ μ°μ°μμ μ°μ μμλ₯Ό λͺ¨λ₯Έλ€λ©΄, μμ μ½λκ° μ΄λ€ κ²°κ³Όλ₯Ό λ°ννκ² λλμ§ μ μ μμ κ²μ΄λ€.
- `*p++`
- ν¬μΈν°κ° κ°λ₯΄ν€λ μμΉλ₯Ό 1 μ¦κ°μν¨λ€.
- μ΄λ `*` λ³΄λ€ `++`μ΄ μ°μ μμλ₯Ό κ°μ§κΈ° λλ¬Έμ΄λ€. μ¦ pλ₯Ό 1 μ¦κ°μν€κ³ , μ°Έμ‘°λ₯Ό νκ² λμ΄ λ€μ μ£Όμλ₯Ό μ°Έμ‘°ν μ μλ κ²μ΄λ€.
- `(*p)++`
- μμ λ¬λ¦¬ `()`λ₯Ό ν΅ν΄ ν¬μΈν° μ°μ°μ μ°μ μμλ₯Ό μ£Όκ² λλ©΄ μ°Έμ‘°νλ κ°μ μ¦κ°μν€κ² λλ€.
- `*++p`
- pκ° μ¦κ° νμ μ°Έμ‘°νκ² λλ―λ‘ λ€μ μ£Όμλ₯Ό μ°Έμ‘°νκ² λλ€.
- `++*p`
- μ°Έμ‘°ν κ°μ μ¦κ°μν€κ² λλ€.
μ΄ μΈμλ μ²λ¦¬νκ³ μ νλ μ½λμ μ°μ°μμ μ°μ μμλ₯Ό 보μ₯νμ¬μΌ νλ κ²½μ°λ₯Ό μκ°νμ¬ μ½λλ₯Ό μμ±νμ¬μΌ νλ€.
sizeof
#include <stdio.h>
int main()
{
int a = 5;
a = sizeof(a++);
printf("a : %d\n", a);
return 0;
}
sizeofμ κ²½μ° μλ£νμ ν¬κΈ°λ₯Ό ꡬν λ λ§μ΄ μ¬μ©νλ€. λν `sizeof(ννμ)`μΌλ‘ μ¬μ©ν μ μλ€. νμ§λ§ sizeofμμ `agument`λ‘ μ°μ°μ μννκ±°λ, ν¨μλ₯Ό μ λ¬ν κ²½μ° μ΄λ₯Ό μννμ§ μλλ€. λ°λΌμ μμ μ½λμ `a`μ κ°μ κ·Έλλ‘ 5κ° λλ€.
ννμμ μμ
int last;
int check_num(int num)
{
last = num;
return num;
}
int main()
{
int x = check_num(1) + check_num(2);
return 0;
}
μμ μ½λμμ μ½λλ₯Ό μ€νν νμ, `last`κ° μ΄λ€ κ°μ΄ λ μ§ μ μ μλκ°? κ° ν¨μκ° νΈμΆλλ μμλ 보μ₯λμ§ μμΌλ―λ‘ μ΄λ€ κ°μ΄ λ μ§ μ μ μλ€. λ§μ½ ν¨μ νΈμΆ μμκ° λ³΄μ₯λμ΄μΌ νλ κ²½μ°μλ λͺ μμ μΌλ‘ λΌμΈμ λλ ν¨μκ° νΈμΆλλλ‘ νμ¬μΌ νλ€.
'πββοΈ νλ‘κ·Έλλ° μΈμ΄ > C' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
C: Generic Coding (0) | 2020.11.18 |
---|---|
C: λ€μν ν¬μΈν° (0) | 2020.11.17 |
C: μ μμ λ²μ (0) | 2020.11.16 |
C: μ μΈκ³Ό μ΄κΈ°ν (0) | 2020.11.14 |
C: 맀ν¬λ‘μ νμ© (0) | 2020.11.14 |