IsDouble 函数原型语法错误&警告(数据定义没有类型或存储class)

IsDouble function prototype syntax error & warning (data definition has no type or storage class)

一直在尝试使用 c 解析 csv 文件。

现在我正在尝试实现一个函数来检查字符串是否只是双精度数,以便我可以转换它。 但是,我在获取 "syntax error before bool" 和 "data definition has no type or storage class"

的 .h 文件中遇到了一些问题
#ifndef MSGR_H
#define MSGR_H

#include <stdio.h>
#include <stdlib.h>

typedef struct Entry 
{
    char *str;
    int iVal;
} Entry;

int NumRows(char fileName[]);
int NumColumns(char fileName[]);
void TokenizeLine(int x; int y; char currentLineStr[], Entry eTable[x][y], int yIndex, int x, int y);
*** bool IsDouble(const char *str);*** (problem is supposedly here)
#endif

下面是函数本身。

bool IsDouble(const char *str)
{
 char *endPtr = 0;
 bool flag = true;
 strtod(str, &endPtr);

 if(*endPtr != '[=12=]' || endPtr == str);
            flag = false;
 return flag;
}

感谢所有意见。

C 中没有 bool,除非您至少使用 C99 并包含 <stdbool.h>

常见做法:return int0 计算结果为 false,其他任何值(通常 1)用作布尔值时计算结果为 true。

代码:

int IsDouble(const char *str)
{
    char *endPtr = 0;
    strtod(str, &endPtr);

    if(*endPtr != '[=10=]' || endPtr == str)
    {
        return 0;
    }
    return 1;
}

(还有一个多余的分号...)