小编too*_*ite的帖子

DOORS DXL 包含在批处理模式中

我正在尝试在 DOORS-Batch 模式下运行 DXL 脚本,并且我想在通过批处理文件启动它时包含一个带有 config-data 的文件

set exePath=%cd%
cd "C:\Program Files\IBM\Rational\DOORS\9.6\bin\"
doors -user "XXX" -password "YYY" -p %1 -b 
"Script.dxl" -dxl "#include <%exePath%>"
Run Code Online (Sandbox Code Playgroud)

当我在 GUI 模式下启动 DOORS 时,我可以执行脚本,当我在批处理模式下启动它时,我收到一个奇怪的错误,比如

DOORS:断言失败,第 436 行,...,内部错误

我找不到解决方案,有人知道吗?

%exePath% 是带有 config 的 dxl 文件的路径

ibm-doors

-1
推荐指数
1
解决办法
1610
查看次数

神秘案例常量不止一次定义错误

我正在使用C语言商业RTOS的套接字库来开发嵌入式项目.出于保密原因,我对某些周围的细节会非常模糊,但只知道有一个完整的产品和RTOS堆栈.

在我正在研究的部分中,我有一个相当大但很简单的switch语句,它检查一个宏值并设置另一个宏值.案例值是RTOS标头中的套接字选项标志.当我用这个switch语句编译文件时,我得到一个错误,说"不止一次定义了case case",指的是其中五个案例.

以下是一些让这个神秘的细节:

  1. 包裹所有标题#ifndef HEADER以避免多个包含.
  2. 宏值来自多个不同的标题,但是案例是否产生此错误与原始标题之间没有明显的相关性.
  3. 如果我注释掉单个定义或者没有明确地包含该标题,我会得到"未定义的标识符",因此它明确地与该文件和定义相关联.
  4. 如果我在Eclipse中执行"C/C++"搜索宏,它会列出定义的两个实例,但它们都引用同一文件中的相同位置.

我是由一位资深开发人员在这里经营的,他和我一样神秘.有没有人知道可能导致这种情况的C解释的怪癖,或者任何地雷可能被忽视了?

谢谢!

c embedded c-preprocessor

-1
推荐指数
1
解决办法
155
查看次数

我可以使用包含指定初始值设定项的C头作为C++吗?

我正在尝试在C++环境中与C文件接口,并且其中一部分在声明时定义了一个数据结构,并为每个成员分配了指定的初始化器:

59    struct {
60       int x;
61       int y;
62       int z;
63    }point_singleton = {
64       .x = 0,
65       .y = 0,
66       .z = 0,
67    };
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试在C++环境中的visual studio中与它进行接口以进行其他测试,我会收到语法错误:

(64):错误C2059:语法错误:'.'

(67):错误C2143:语法错误:缺少';' 之前'}'

(67):错误C2059:语法错误:'}'

是否可以在不更改代码的情况下解决它?

c++ visual-studio

-1
推荐指数
1
解决办法
231
查看次数

EOF在c循环时阻塞

我正在尝试在c中创建一个代码,只需用cmd命令"Wmic logicaldisk get"在txt文件中写入磁盘c信息,但我只需要数字(大小为4294931).所以我选择这个输出并将其放入一个txt文件中以获得输入中的唯一数字.(我知道这很奇怪).

这是完整的代码:

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

int main()
{
    system("wmic logicaldisk get size> test.txt");

    unsigned char symb;
    FILE *FileIn;
    FileIn = fopen("test.txt","rt"); 
    int getc(FILE *stream);
    while (( symb = getc(FileIn)) !=EOF) 
    {
        if( isdigit(symb))
        {
            printf("%C", symb);
        }
    }
    printf("test"); //for debug
}
Run Code Online (Sandbox Code Playgroud)

代码工作,但不能退出循环,而它正确打印的数字,但下一个命令不执行(所以不执行pritnf测试).

c eof

-1
推荐指数
1
解决办法
65
查看次数

我可以逃避(抑制)C预处理器宏扩展

我使用了以下代码:

auto t = numeric_limits<decltype(m)>::max() - 1;
Run Code Online (Sandbox Code Playgroud)

后来,我需要#include <Windows.h>哪个#define max(a, b)指令,所以我不能使用::max()方法.有没有办法在::max()不使用时调用时抑制宏扩展#undef max

c++ preprocessor

-1
推荐指数
1
解决办法
84
查看次数

C中的预处理程序命令是否计为令牌?

我正在阅读关于令牌和计算程序中令牌数量的内容.

以前我在某处读过预处理器命令不算作令牌.但是当我在Geeksforgeeks上阅读有关令牌时,它会在"特殊符号"部分中给出:

预处理器(#):预处理器是一个宏处理器,编译器会在实际编译之前自动转换程序.

所以我很困惑,在一个程序中,如果我们写#define它将是一个令牌吗?

例如:

#include<stdio.h> 
#define max 100 
int main() 
{ 
    printf("max is %d", max); 
    return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

这个例子中有多少个令牌.

c token c-preprocessor

-1
推荐指数
1
解决办法
185
查看次数

C中的fclose()函数默认附加EOF字符吗?

我知道在C++中,EOF字符会自动附加到文件末尾,例如filestream.close.我想知道,这是在C中也是默认完成的吗?

c

-2
推荐指数
1
解决办法
878
查看次数

如何在OpenMP中将此for循环并行?

我试图通过添加"#pragma omp parallel for"来并行运行循环,但这对我如何并行这个循环没有任何建议?

#pragma omp parallel for
   for (p = split; *p != 0; p++) if (*p == ' ') *p = '0';
Run Code Online (Sandbox Code Playgroud)

c parallel-processing openmp

-2
推荐指数
1
解决办法
104
查看次数

如何在C中组合这两个printf语句?

我正在尝试打印"你好,数字5是正确的!" 在C.

我现在的方式是使用两个printf语句:

printf("Hello the number %d", number);
printf(" is correct!\n");
Run Code Online (Sandbox Code Playgroud)

如何在Java中的一个语句中执行此操作:

System.out.println("Hello the number "+number+" is correct!");
Run Code Online (Sandbox Code Playgroud)

我试过在C中这样做:

printf("Hello the number %d", number, " is correct!");
Run Code Online (Sandbox Code Playgroud)

但是"是对的!" 没有出现.

有没有办法在一个声明中这样做?对不起,我对C.很新.

c printf

-2
推荐指数
1
解决办法
281
查看次数

为什么 sizeof(0xF) 是 4 个字节?

我有以下代码,

unsigned short code = 0x12E0;
code = code & 0x0FFF;
Run Code Online (Sandbox Code Playgroud)

在我的 CLion IDE 中,我收到一条警告:

“类型值int可能不适合接收者类型unsigned short

如果我这样说code &= 0x0FFF;,警告就会消失。

为什么它被0x0FFF视为int?是sizeof(0xF)4,有人可以解释为什么吗?

c++ integer sizeof

-2
推荐指数
1
解决办法
1188
查看次数