我一直在使用Enterprise Architect工具执行一个与逆向工程相关的项目。但是,当我用C/C++语言执行逆向工程时,出现了未知的错误。错误日志如下:
There was an error parsing C:\Users\soo\Desktop\7z920\7zip\Archive\7z\7zDecode.cpp on line 91. Unexpected symbol: *
You may need to define a language macro.
There was an error parsing C:\Users\soo\Desktop\7z920
我试图通过导入C++文件来生成UML图。因此,我右击“我的项目”文件夹,然后转到>,选择包含所有C++文件的文件夹。到目前一切尚好?
我收到以下错误消息:
There was an error parsing C:/path/to/file on line X. Unexpected symbol: typedef
You may need to define a language macro.
我认为我是通过跟踪和添加typedef来做到的,但这并没有起到任何作用。
我对EA很陌生。任何帮助都是非常感谢的。
因此,我被要求在AIX7 (64位)机器上编译一些遗留的C代码。
而且,我刚刚修改了makefile以编辑所使用的编译器(从gcc到xlc_r)和标志,从(-DAIX3到-DAIX7)。
然而,由于这个愚蠢的做法,我得到了一个错误,它抱怨
xlc_r -c -q64 -O -DAIX -DAIX7 log.c
"log.c", line 128.7: 1506-343 (S) Redeclaration of log_write differs from previous declaration on line 140 of "lib.h".
考虑以下C代码:
#include <stdio.h>
#include <stdlib.h>
void fatal(const char* message){
/*
Prints a message and terminates the program.
Closes all open i/o streams before exiting.
*/
printf("%s\n", message);
fcloseall();
exit(EXIT_FAILURE);
}
我使用clang2.8编译:clang -Wall -std=gnu
C不是我的第一种语言,但我已经写了很多。我正在检查一个代码,我遇到了一个我以前从未见过的构造:
loop(i,nlevels)
{
/* do stuff based on "i" */
}
没有do、for或while。"i“在循环中不起作用。我假设这意味着从0到n个级别(或者n个级别-1)依次循环"i“,但我不知道。我在K&R找不到这个我在网上找不到。有没有人能开导我?谢谢。