블로그 (Blog)/개발로그 (Devlogs)

디바이스 드라이버에서 atof 함수 구현

ihmin 2025. 2. 18. 10:46

2011년경에 작성된 글로써.. 지금은 지원될려나?

 

디바이스 드라이버는 표준 함수를 지원하지 않음. 예로 버전 비교시 atof 를 사용하면 좋은데.. 드라이버는 atof를 지원하지 않으니 아래와 같이 구현해야함.

float StringToFloat(UCHAR* s)
{
    float rez = 0, fact = 1;
    if (*s == '-'){
        s++;
        fact = -1;
    };
    for (int point_seen = 0; *s; s++){
        if (*s == '.'){
            point_seen = 1;
            continue;
        };
        int d = *s - '0';
        if (d >= 0 && d <= 9)
        {
            if (point_seen) fact /= 10.0f;
            rez = rez * 10.0f + (float)d;
        };
    };
    return rez * fact;
}