time_t 的 C++ 生成器错误 "Type name expected"

标签 c++ api c++builder c++builder-2010

我有一行源码:

time_t l1_QuoteTime;

我收到以下错误:

[BCC32 Error] QuoteDefs.h(18): E2303 Type name expected
  Full parser context
    Unit1.cpp(7): #include api\dasapi.h
    dasapi.h(13): #include api\QuoteDefs.h
    QuoteDefs.h(9): class st_L1Quotes

我已经包括了<time.h> .我在这里缺少什么?


代码:

class st_L1Quotes
{
public:
    char secsym[10];
    char PrimExch;
    int mstatus;
    double l1_BidPrice;
    int l1_BidSize;
    double l1_AskPrice;
    int l1_AskSize;
    time_t l1_QuoteTime;
    double l1_lastPrice;
    double l1_todayhigh;
    double l1_todaylow;
    double l1_todayclose;
    int l1_volume;
    double l1_yclose;
    double l1_todayopen;
    double l1_LastBidPrice;
    // this is used for show up/down arrow for NASDAQ NMS stocks;
};

最佳答案

<time.h> 在哪里(应该是 <ctime> )包括 w.r.t "api/dasapi.h"标题?

的确,QuoteDefs.h header 应该是 #include <time.h><ctime>本身,因为除非存在包含,否则不能使用它。我可以看到 time_t在我格式化的代码片段的第 11 行可能在您的代码格式中的第 9 行,但是没有标题保护 guard 或必要的 #include 的空间。 .

一般提示:

  • 标题应该是独立的和幂等的。

自包含意味着您应该能够编写:

#include "header.h"

在文件的顶部,代码应该可以干净地编译。

幂等性意味着标题是否被包含两次无关紧要。通常,这不会直接完成;相反,源将直接包含 header ,而其他一些 header 也将间接包含 header (或者其他两个 header 将间接包含它)。想一想如果您只能包含 <stdio.h> 会多么麻烦或 <iostream>一次!

您可以通过编写来测试幂等性:

#include "header.h"
#include "header.h"

在文件的顶部,代码应该可以干净地编译。

我什至有一个名为 chkhdr 的脚本自动化测试:

#!/bin/ksh
#
# @(#)$Id: chkhdr.sh,v 1.3 2011/07/25 07:09:49 jleffler Exp $
#
# Check whether a header can be compiled standalone

tmp=chkhdr-$$
trap 'rm -f $tmp.?; exit 1' 0 1 2 3 13 15

cat >$tmp.c <<EOF
#include HEADER /* Check self-containment */
#include HEADER /* Check idempotency */
int main(void){return 0;}
EOF

options=
for file in "$@"
do
    case "$file" in
    (-*)    options="$options $file";;
    (*)     echo "$file:"
            ${CC:-gcc} $options -DHEADER="\"$file\"" -c $tmp.c
            ;;
    esac
done

rm -f $tmp.?
trap 0

关于time_t 的 C++ 生成器错误 "Type name expected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12991658/

相关文章:

c++ - C++中char的类型(被C++入门解释搞糊涂了)

c++ - 如何在单元质心处存储 vtkUnstructuredGrid 的 vector 场

c++ - C++ 类型中有哪些不能被复制?

python - 如何将 python 中的类转换为 pandas 数据框?

java - 如何使用 Android AsyncHttpClient 从 MongoDB 获取数据

api - Bittrex Api : Conditional Fills, Fill-Or-Kill 等。

c++ - 如何检查 UnicodeString 的字符?

c++builder - 在现代 C++Builder 应用程序中使用预编译头文件的最佳实践是什么?

sql-server - C++ Builder 和 ADO - 如何在触发器执行后显示正确的值?

c++ - 更改 ofstream 文件 C++ 的位置时出错