小编Evi*_*ach的帖子

char four [4] ="四"; 这个陈述的正确语义是什么?

int main(void)
{
    char four[4] = "four";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当编译为C++程序时,G ++报告

xxx.cpp:在函数int main()中:

xxx.cpp:3:错误:字符数组的初始化字符串太长

编译一个C程序时,GCC报告没有错误.

在我看来,正如我所料,赋值正确地将所有4个字节复制到变量中.

所以我的问题归结为......

在C中观察到的行为是正确的还是我在某处接触到未定义的行为,或者它是完全不同的东西?

c c++ arrays initialization string-literals

7
推荐指数
1
解决办法
964
查看次数

你将如何实施游戏逆转?(奥赛罗)

我一直在考虑在家开始一个侧面项目来锻炼我的大脑. 黑白棋看起来像一个简单的游戏,其中移动性对游戏玩法有深远的影响.它至少比tic tac toe更进了一步.这将是针对某种AI的单一玩家.

我想在PC上用C++试试这个.

我可能遇到什么问题?

你会推荐什么图形库?

我有什么问题不够聪明地问自己?

c++ graphics

6
推荐指数
1
解决办法
6985
查看次数

你如何处理NUL?

当我们谈论NULL时,我会不时遇到与其他程序员的通信问题.现在NULL可以是

一个NULL指针
,NUL字符
是某种数据库中的空数据元素.


NUL似乎是最令人困惑的.它是ASCII字符0x00.
我倾向于在代码中使用'\ 0'来表示它.我的组中的一些开发人员
倾向于简单地使用0,并让编译器隐式地将其转换为char.


您更喜欢NUL使用什么?为什么?

c c++

6
推荐指数
2
解决办法
1368
查看次数

将2d数组写入C中的文件

我曾经使用下面的代码将1D数组写入文件:

FILE *fp;
float floatValue[5] = { 1.1F, 2.2F, 3.3F, 4.4F, 5.5F };
int i;

if((fp=fopen("test", "wb"))==NULL) {
    printf("Cannot open file.\n");
}

if(fwrite(floatValue, sizeof(float), 5, fp) != 5)
    printf("File write error.");
fclose(fp);

/* read the values */
if((fp=fopen("test", "rb"))==NULL) {
    printf("Cannot open file.\n");
}

if(fread(floatValue, sizeof(float), 5, fp) != 5) {
    if(feof(fp))
        printf("Premature end of file.");
    else
        printf("File read error.");
}
fclose(fp);

for(i=0; i<5; i++)
    printf("%f ", floatValue[i]);
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我想写和读取2D数组?

c io stdio fwrite

6
推荐指数
1
解决办法
2万
查看次数

不允许在Guard中使用函数.需要替代实施的建议

我正在尝试使用fermats方法创建一个素数因子.

该行生成错误

find_factors(A, B, FactorThis) when is_a_square(B) == true ->
Run Code Online (Sandbox Code Playgroud)

调用本地/导入函数is_a_square/1是非法的

我在这个实现中看到的唯一可能的替代方法是在函数中使用某种case语句.我正在避免这种情况,因为它可能搞砸尾部递归.我是Erlang noob. 还有哪些其他方法可以实现此功能?

get_int_part_of_sqrt(N) ->
    trunc(math:sqrt(N)).

is_a_square(N) ->
    get_int_part_of_sqrt(N) * get_int_part_of_sqrt(N) == N.

calculate_new_b(A, FactorThis) ->
    NewB = trunc(abs((A * A) - FactorThis)),
    io:format("Calculate_new_b A^2 ~w- FT ~w= NB ~w ~n",[A*A,FactorThis,NewB]),

find_factors(A, B, FactorThis) when is_a_square(B) == true ->
    io:format("find_factors true ~w ~w~n", [A, B]),
    {ok, A + get_int_part_of_sqrt(B), A - get_int_part_of_sqrt(B)};

find_factors(A, B, FactorThis) ->
    io:format("find_factors false ~w ~w~n", [A, B]),
    NewA = A + 1, …
Run Code Online (Sandbox Code Playgroud)

erlang

6
推荐指数
1
解决办法
3366
查看次数

优化器是否会将临时非POD类型移出循环?

给出以下代码:

while(is_running)
{
     std::vector<buffer> buffers;

     // fill buffers

     // use buffers
}
Run Code Online (Sandbox Code Playgroud)

现代编译器是否执行以下转换?

std::vector<bufer> buffers;

while(is_running)
{
     // fill buffers

     // use buffers

     buffers.clear();
}
Run Code Online (Sandbox Code Playgroud)

c++ compiler-construction optimization

6
推荐指数
1
解决办法
106
查看次数

如何检测Oracle中的表上是否存在特定列的索引?

存在其他人加载的表.我需要查询表,但缺少索引会使查询计划变得糟糕.我想要做的是检测是否有特定列的索引,以便我可以创建它(如果它不存在),如果它已经存在则不创建它.

谢谢.

邪恶

oracle indexing

5
推荐指数
1
解决办法
1688
查看次数

为什么在C/C++/rtl中没有类似LDIR功能的Z80?

在Z80机器代码中,一种将缓冲区初始化为固定值的廉价技术,比如所有空白.所以一大堆代码可能看起来像这样.

LD HL, DESTINATION             ; point to the source
LD DE, DESTINATION + 1         ; point to the destination
LD BC, DESTINATION_SIZE - 1    ; copying this many bytes
LD (HL), 0X20                  ; put a seed space in the first position
LDIR                           ; move 1 to 2, 2 to 3...
Run Code Online (Sandbox Code Playgroud)

结果是DESTINATION的内存块完全填满了空白.我已经尝试了memmove和memcpy,并且无法复制这种行为.我希望memmove能够正确地完成它.

memmove和memcpy为什么会这样?

有没有合理的方法来进行这种数组初始化?

我已经知道char array [size] = {0}用于数组初始化

我已经知道memset将为单个字符完成工作.

还有什么其他方法可以解决这个问题?

c c++ z80

5
推荐指数
6
解决办法
2748
查看次数

宏的问题

嗨,

有人可以帮助我理解为什么SQUARE(x)的值是49?

我使用的是Visual C++ 6.0.

#define SQUARE(X) X * X

int main(int argc, char* argv[])
{
    int y = 5;

    printf("%d\n",SQUARE(++y));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ macros visual-c++-6

5
推荐指数
4
解决办法
4315
查看次数

如何从Perl中以只读方式打开Word文档?

在Perl中是否有任何方法可以让我以只读模式获取对象,以避免在另一个用户锁定文件时弹出的对话框?

$document = Win32::OLE->GetObject("$docFile")
    or die "can't open $docFile";
Run Code Online (Sandbox Code Playgroud)

perl ole ms-word

5
推荐指数
1
解决办法
3885
查看次数