小编rsj*_*ani的帖子

标准c库是否提供链表等数据结构?

标准C库实现,特别是glibc(GNU C库)提供链表,堆栈等.数据结构,还是我们必须自己滚动?

谢谢.

c gcc glibc data-structures

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

如何自定义Windows窗体的系统菜单?

我想将旧的About菜单项添加到我的应用程序中.我想将它添加到应用程序的"系统菜单"(当我们点击左上角的应用程序图标时弹出的那个).那么,我怎么能在.NET中做到这一点?

.net c# winapi winforms systemmenu

40
推荐指数
4
解决办法
2万
查看次数

为什么某些函数声明extern和头文件不包含在Git源代码的源代码中?

我想看一个真实世界的应用程序的源代码,以了解良好的编程实践等.所以我选择了Git并下载了1.8.4版本的源代码.

在随机浏览各种文件之后,我在这两个文件中引起了我的注意:strbuf.h strbuf.c

这两个文件显然使用此文档定义了API .

我有两个问题:

  1. 为什么第16,17,18,19行的函数声明和'strbuf.h'第6行的全局变量声明为extern?

  2. 为什么"strbuf.h"在strbuf .c中不是#included?

作为新手程序员,我总是学会在.c文件中编写函数定义,而函数声明,宏,内联等都是用.h文件编写的,然后在每个.c文件中#included都要使用这些文件.功能等

有人可以解释一下吗?

c git coding-style

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

printf如何在内部工作.

可能重复:
没有汇编的C/C++函数定义

嗨再次,我想知道printf如何在内部工作...在内部我指的是使用什么底层系统调用/ ISR等机制...而不是关于变量参数列表...

原因:我正在使用FASM但是控制台i/o几乎没有,我知道我可以使用c库中提供的printf(我不知道如何但这是另一个点)

谢谢.

c assembly

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

今天应该使用errno/perror方法来检测错误吗?

我知道之前已经有很多关于C中错误处理的问题,但这是关于errno的东西.

我想问一下是否应该使用errno/perror功能在运行时优雅地处理错误.我问这是因为MSVC使用它而Win32 api也大量使用它.我对gcc或'linux api'一无所知.今天gcc和MSVC都说errno/perror可以在多线程环境中安全使用.所以你的观点是什么?

谢谢.

c error-handling

3
推荐指数
1
解决办法
325
查看次数

什么是与VC2008项目相关的C2471,C1083错误以及如何纠正它们

我有一个非常复杂的VC2008项目.为了理解它的内部工作,我试图简化它,现在我得到大多数文件的以下类型的289个错误:

错误5错误C2471:无法更新程序数据库'c:\ users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\debug\vc90.pdb'c:\ users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\mediainfo\file__analyze_buffer_minimizesize.cpp 1 CLI

错误6致命错误C1083:无法打开程序数据库文件:'c:\ users\ryan\documents\visual studio 2008\projects\_vc\myinfo\cli\debug\vc90.pdb':没有这样的文件或目录c:\ users\ryan\documents\visual studio 2008\projects\vc\myinfo\cli\mediainfo\file__analyze_buffer_minimizesize.cpp 1 CLI

我的系统:win7/VS2008

c++ visual-studio-2008 visual-c++

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

无法在具有VS2010/.net4的电脑上运行基于.net3.5的exe?

我有一个基于.net3.5的exe,当我在PC上运行时会给出以下消息:"无法找到运行此应用程序的运行时版本."????

电脑上安装了winxp sp3和vs2010,因此基于.net4的应用程序正在运行但基于.net3.5的exes不是.据我说,如果电脑有.net3.5那么它应该可以运行.net3.5应用????

谢谢

.net .net-4.0 .net-3.5

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

有没有办法让结构的某些成员不可修改?

我有一个结构:

struct ABC
{
   int size;
   int arr[15];
};
Run Code Online (Sandbox Code Playgroud)

我知道我不能把'int size'变成'const int size'所以我怎样才能保持size成员不被意外/故意修改.在C中有办法解决吗?

谢谢.

c struct

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

如何在WPF中获取背景的颜色

在我的小型WPF程序中,我想在鼠标点击消息框中显示客户区域的"背景颜色"的名称....我该怎么办?

系统:Win7(32位)/ VS2008

谢谢.

wpf background

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

全局变量值自动变化?

...

char A,M,Q,Q_1,count;

int main()

{

    system("cls");
    count=8;
    printf("%d",count);
    printf("\n\tEnter the Multiplicand(M) : ");
    scanf("%d",&M);
    printf("\n\tEnter the Multiplier(Q) : ");
    scanf("%d",&Q);
        printf("%d",count);    //prints 0???????
.......

}
Run Code Online (Sandbox Code Playgroud)

我不明白'count'的值如何变为0.

请帮忙...谢谢.

系统:win7/VS2008

编辑:在了解我在做什么之后(感谢PéterTörök),我在scanfs之后将作业移到了'count',这解决了问题...谢谢.

c

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

哪个更有效:一个Win32功能.或类似的CRT功能.在VC++应用程序中.?

我开始win32编程很有趣,因为我喜欢复杂的东西,我喜欢编程(这就是Charles Petzold和Jeffrey Richter编写这些精美书籍的错误.)可能是因为我有性能代码的东西.

现在,真正的问题是:我将使用GetEnvironmentVariable()[win32 API函数]和getenv()[标准CRT函数]的示例.

这两个都返回作为参数提供的环境变量的值.

那么使用哪一个会更有效,或者换句话说哪一个具有更短的调用堆栈,哪一个更直接?想想一些功能.被称为百万次.

我相信他们中的任何一个都映射到另一个.我是对的还是我在这里遗漏了一些东西.

简介:在为win32 api编程时,如果api和c/c ++库中都有可用的函数提供相同的功能,我应该使用哪一个?

谢谢.

c c++ winapi visual-c++

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

将 errno 与用户定义的错误代码一起使用?

鉴于,这是我的策略(类似于win32 api函数):

1)保留返回值,用于指示成功(非零值)、错误(0)。

2)使用 errno,perror 提供更多信息。关于错误的类型。

3)使用参数返回值。

如果可以,那么我可以定义自己的错误代码(不与现有代码冲突)并使用 errno 来设置/检索它们。我认为现在我无法将 perror 与这些代码一起使用(它总是会说:未知错误),但我可以定义自己的基于 switch case 的函数来返回错误代码的描述。我可以定义自己的变量,但是为了使 errno现代化且线程安全,我们已经做了很多工作。

例如:

int val;
if(MyPop(&val))
   pintf_s("\n %d popped from my stack. . .",val);
else
   printf_s(Myperror());
Run Code Online (Sandbox Code Playgroud)

谢谢。

c error-handling

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

为什么我们不应该在C中动态分配堆栈上的内存?

我们有在Windows和Linux系统中在堆栈上分配内存的功能,但是不鼓励它们使用它们也不是C标准的一部分?这意味着它们提供了一些非标准行为.由于我没有经验,我无法理解从堆栈分配内存而不是使用堆时可能出现的问题?

谢谢.

编辑:我的观点:由于Delan已经解释过分配给程序的堆栈数量是在编译期间决定的,所以如果我们用完它就不能从操作系统中请求更多的堆栈.唯一的出路就是崩溃.所以最好留下堆栈来存储诸如变量,函数,函数调用,数组,结构等主要内容,并使用堆与OS /机器的容量一样多.

c

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