0

我在“main.cpp”中输入了以下代码:

#include "rational.h"

using namespace std;

typedef struct rational {
    long long numerator;
    long long denominator;
} rational_t;

我有一个名为“rational.h”的头文件:

#pragma once


rational add(rational  a,rational b)
{
    rational c;
    c.numerator = a.numerator + b.numerator;
    c.denominator = a.denominator + b.denominator;
    return c;
}

我在网上遇到错误:

rational add(rational  a,rational b)

它给了我以下错误代码:Fehler C4430 Fehlender Typspezifizierer - int wird angenommen。Hinweis:“默认整数”wird von C++ nicht unterstützt。翻译:错误 C4430 缺少类型说明符 - 接受 int。C++ 不支持“default-int”。

我认为是因为该函数没有正确检测到我的结构。谁能帮帮我?

问候,耐克

4

1 回答 1

1

您还没有粘贴 main.cpp 和rational.h 的完整源代码,因此这使得正确调试变得有点困难。仅基于您提供的内容:

  1. 您的结构被称为“理性”,但您使用了 typedef 并将其定义为新类型,或者另一种声明“理性结构”的方式称为rational_t。您的函数应该返回一个rational_t,并接受两个参数的rational_t。

  2. 您可能打算在函数声明之前将结构有理放入rational.h。

从这个示例代码中很难确定你是否也想使用 C++ 或 C,所以我用 C 编写了它。这将是你学习的开始。

主程序

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

#include "rational.h"

int main() 
{
    rational_t first;
    rational_t second;

    first.numerator = 5;
    first.denominator = 7;

    second.numerator = 3;
    second.denominator = 9;

    rational_t product = add(first, second);
    printf("%lld / %lld\n", product.numerator, product.denominator);

    return 0;
}

理性的.h

#ifndef RATIONAL_H_
#define RATIONAL_H_

typedef struct rational {
    long long numerator;
    long long denominator;
} rational_t;

rational add(rational  a,rational b)
{
    rational c;
    c.numerator = a.numerator + b.numerator;
    c.denominator = a.denominator + b.denominator;
    return c;
}

#endif // RATIONAL_H_
于 2016-12-11T11:51:51.433 回答