gpt4 book ai didi

c - 意外标记附近的语法错误 `('

转载 作者:行者123 更新时间:2023-12-04 09:52:42 25 4
gpt4 key购买 nike

下面是我的代码,它一直告诉我第 10 行导致了这个“意外标记附近的语法错误‘(’”,但我不知道为什么。我正在添加一个已经写好的代码,但它说的部分是错误不是我添加的内容的一部分。所以我对为什么会收到此错误感到非常困惑。此外,我想对这个错误的实际含义有一个很好的定义。

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

#include "applanix_data.h"
#include "applanix_pos_out.h"

#define DEGREES2RADIANS (3.141592654 / 180.0)

int output_group_1(FILE *fp, /* This is line 10 */
FILE *fpout,
unsigned short myyear,
unsigned short mymonth,
unsigned short myday,
double time_sod,
double double_time_met)
{
struct applanix_data_group1 data1;
struct pospacsbet sbet;

if(fread(&data1,sizeof(struct applanix_data_group1),1,fp)==1)
{
sbet.gpstime = time_sod;
sbet.latitude = data1.latitude * DEGREES2RADIANS;
sbet.longitude = data1.longitude * DEGREES2RADIANS;
sbet.altitude = data1.altitude;
sbet.x_velocity = data1.eVelocity;
sbet.y_velocity = data1.nVelocity;
sbet.z_velocity = data1.dVelocity;
sbet.roll = data1.aircraftRoll * DEGREES2RADIANS;
sbet.pitch = data1.aircraftPitch * DEGREES2RADIANS;
sbet.platform_heading = data1.aircraftHeading * DEGREES2RADIANS;
sbet.wander_angle = data1.aircraftWanderAngle * DEGREES2RADIANS;
sbet.x_body_acceleration = data1.aircraftTransverseAcceleration;
sbet.y_body_acceleration = data1.aircraftLongitudinalAcceleration;
sbet.z_body_acceleration = data1.aircraftDownAcceleration;
sbet.x_body_angular_rate = data1.aircraftAngularRateAboutDownAxis;
sbet.y_body_angular_rate = data1.aircraftLongitudinalAcceleration;
sbet.z_body_angular_rate = data1.aircraftAngularRateAboutDownAxis;

if(fwrite(&sbet,sizeof(struct pospacsbet),1,fpout)!=1)
{
fprintf(stderr,"Error writing POSPAC SBET output!\n");
exit(-2);
}

sbet.latitude1 = sbet.latitude * (180/3.141592654);
sbet.longitude1 = sbet.longitude * (180/3.14592654);
sbet.day = sbet.gpstime/86400;
sbet.time = sbet.gpstime/86400;
sbet.hour1 = (sbet.time - sbet.day);
sbet.hour = sbet.hour1*24;
sbet.time = sbet.hour1*24;
sbet.minute1 = (sbet.time - sbet.hour);
sbet.minute = sbet.minute1*60;
sbet.time = sbet.minute1 * 60;
sbet.second1 = (sbet.time - sbet.minute);
sbet.second = sbet.second1*60;


printf("%12.8f, %12.8f, %6.3f, %i:%i:%4.2f\n",sbet.longitude1,sbet.latitude1,sbet.altitude,sbet.hour, sbet.minute, sbet.second);
return 0;
}
else
return -1;
}

将 OP 的评论编辑为问题:
unix> g++ applanixraw2out.c
unix> ./applanixraw2out.c applanix_raw_20120508.bin > test.txt
./applanixraw2out.c: line 10: syntax error near unexpected token ('

最佳答案

这不是编译器语法错误,而是 shell 错误。

您正在尝试直接执行 C 源代码。系统假设该文件是一个 shell 脚本。

您需要将其编译为可执行文件,然后运行该可执行文件:

$ gcc applanixraw2out.c -o applanixraw2out
$ ./applanixraw2out [arguments]

在评论中,您说您执行了以下操作:
unix> g++ applanixraw2out.c
unix> ./applanixraw2out.c applanix_raw_20120508.bin > test.txt
./applanixraw2out.c: line 10: syntax error near unexpected token ('
g++命令用于 C++ 代码;你的代码是 C,所以你应该使用 gcc反而。

您必须指定可执行文件的名称,最常见的是使用 .c 的源文件名。移除。如果你不这样做,两个 g++gcc生成一个名为 a.out 的可执行文件默认情况下(由于历史原因)。使用 -o选项来覆盖该默认值。

此外,为了获得该语法错误,您必须执行以下操作:
$ chmod +x applanixraw2out.c

对不打算执行的文件设置执行权限是 mostly harmless ,但应该避免,因为它会使此类错误更难以追踪。

关于c - 意外标记附近的语法错误 `(',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18450014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com