C언어 const 사용법 이게 진짜 해도 되는 건지 궁금합니다

chocokeki의 이미지

const 그거 뭐 define 대체하는 거 아니야? 라는 생각으로 살아온지 오래되었습니다
그런데 코딩룰 검사를 돌려보니 아래와 같은 경우도 const 로 지정하라고 합니다
C언어 표준에 부합하는 const 사용법이 맞는지 확인을 부탁드립니다.

bool compare(const uint8 *src1, const uint8 *src2)
{
    uint8 data1 = src1[0];          //아니 세상에 const uint8 로 선언하래요!
    uint8 data2 = src2[0];          //아니 세상에 const uint8 로 선언하래요!
 
    if(data1 == data2)
    {
       return true;
    }
    else
    {
       return false;
    }
}

검사 툴에서는 data1, data2가 함수 인자를 통해 입력 받은 뒤 별도의 수정이 없으므로 const로 선언하기를 권장합니다.

const로 선언하면 text section으로 들어갈 것 같은데...이거 툴이 잘못 검출한거겠죠?

const uint8 data1 = src1[0];
const uint8 data2 = src2[0];
익명 사용자의 이미지

아주 완벽하게 표준에 부합하는 사용법입니다.

저게 이상하다면 함수 매개변수 const uint8 *src1에 있는 const는 안 이상한가요?

Quote:
const로 선언하면 text section으로 들어갈 것 같은데...

??? 누가 그래요?