c相关内容

C中的变量类型以及跟踪它的人

我正在参加哈佛大学的MOOC课程。在第一堂课中,我们学习了不同数据类型的变量:int、char等。 我所理解的是main命令(在main函数中)int a = 5在堆栈上保留一定数量的内存字节(大部分为4字节),并将表示5的一系列0和1放在那里。 相同的0和1序列也可能表示某个字符。因此,需要有人跟踪这样一个事实,即为a保留的内存位置中的0和1序列将被读取为整数(而不是字符)。 ..
发布时间:2022-08-22 16:16:50 其他开发

用SDL2绘制矩形

我刚刚开始使用SDL2,我已经有了一个问题。 我想创建一个窗户,并把它涂成红色。 但它仍然是白色的,我不明白为什么。 代码如下: int main (int argc, char** argv) { SDL_Window* pWindow = NULL; pWindow = SDL_CreateWindow("Jeu de la vie", SDL_WINDOWPOS_ ..
发布时间:2022-08-21 13:09:23 其他开发

设置和清除C中的位

我在执行一些位操作的C程序时遇到了一些问题。在程序中,我使用一个无符号的long long int变量来表示一个64位地图,每一位代表地图上的一个位置。我需要能够更新这些位(位置),即设置或清除一个位。 为了清除和设置位,我这样做(0是最低有效位): map &= ~(1 ..
发布时间:2022-08-20 10:07:56 其他开发

如何有效地知道字符中第一个(左-右)位的位置

正如标题所说,我有一个字符(例如00101011),我如何知道其中第一个‘1’位的位置?(在本例中,它是6,如果我们认为最右边的位置是0,则为5)。 我知道循环移位会很有帮助,但有没有更有效的方法呢? 推荐答案 有一些小笼子(正如Codor提到的)可以做得比只做Shift更好,但O(1)中没有。我想到了二进制搜索。 恐怕唯一更有效的方法是专门的处理器指令,就像x86上的bsr指令。 ..
发布时间:2022-08-20 09:00:56 其他开发

这个二进制搜索功能有什么问题?

我正在尝试解决二进制搜索的Spoj问题,但我总是得到“错误的答案”,我看不到我的问题。 以下是我的b搜索函数: int binarySearch(int numbers[], int size, int key) { int start = 0; int end = size - 1; int middle; while(start ..
发布时间:2022-08-18 17:01:08 其他开发

C/C++中高效的溢出免疫算术平均值

两个无符号整数的算术平均值定义为: mean = (a+b)/2 在C/C++中直接实现它可能会溢出并产生错误的结果。正确的实现可以避免这种情况。一种编码方式可能是: mean = a/2 + b/2 + (a%2 + b%2)/2 但这会使用典型的编译器生成相当多的代码。在汇编程序中,这通常可以更高效地完成。例如,x86可以通过以下方式做到这一点(汇编伪代码,我希望您明白这一 ..
发布时间:2022-08-17 18:57:39 C/C++开发

如何在C中使用GDI+?

免责声明:我只是从C开始,所以我很可能遗漏了一些明显的东西,或者没有正确地思考!:) 我将如何在纯C中使用GDI+? 据我所知,GDI+包装了为C++制作的对象,但在它下面是一个平面API,可以通过gdiplusflat.h访问,这是一个C友好的头文件。 我的问题是,当我#包含它时,我得到以下错误: C:Program Files (x86)Microsoft SDKsWindo ..
发布时间:2022-08-17 14:59:30 其他开发

TRIM函数是否将内存大小减半以删除空格?

我必须创建一个可以执行此任务的函数(Trim函数):获取一个以空结尾的字符串,如果该字符串的第0位有空格,则删除该空格。如果空格在字符串的末尾(在零终止符之前),情况也是一样。因此,该函数基本上忽略了字符串中间的空格。 这是我到目前为止尝试做的事情, (1)我将";a b";字符串传递给Trim函数。 (2)(空指针检查)。 (3)使用strlen函数获取字符串的长度。 ..

我怎样才能在Wayland上截屏?

现在我需要开发一个插件,可以在Ubuntu、CentOS和Fedora上截屏。我试着用Xlib编写它。它可以在Ubuntu和CentOS上运行,但Fedora使用的是Wayland,我开发的插件无法运行。 Gnome截图可以在这些平台上运行,但我看了他的源代码后发现,它可以通过调用其他进程来实现截图,这对我来说是很难学习的。 有什么办法可以在Wayland Engine上截屏吗? ..
发布时间:2022-08-15 15:02:21 其他开发

C++中数组的链接列表

我在将数组指定为链表元素时遇到问题。我试着把字符改成字符*但对我没有帮助。我真的很感激你的名字 在这里我创建了一个结构 struct node{ char data; struct node *next; }; 并添加了此函数以添加新节点 void addLast(struct node **head, char val) { //create a new node struct ..
发布时间:2022-08-15 13:07:21 其他开发

C头文件中应该放置哪些声明?

我的项目中几乎每个.c文件都有一个头文件。所有的typedef和函数声明都放在头文件中。但这是一种好的做法吗?某些typedef仅在一个.c文件中使用。此外,某些函数未被其他源文件中的函数调用。 推荐答案 #include是一个预处理步骤,因此您可以在其中插入任何内容。这在很大程度上是一个风格问题,但将对命名空间的影响降到最低是很好的编程实践。(通常)使用头文件允许PUBLIC和PRI ..
发布时间:2022-08-14 21:30:30 其他开发

如何在C中读入Enter键作为输入?

如何在C中读取Enter键作为输入?我想要这样的节目: "Please enter a key to go to next line" 如何在C中添加此类型的选项? 我是编程新手。 推荐答案 您可以使用stdio.h中的getc函数等待,直到按下某个键。此C代码将等待按Enter键,然后输出&继续!: #include int main(){ ..
发布时间:2022-08-13 18:48:18 其他开发

如何使用Win32API将位图复制到剪贴板?

如何使用Win32 API将保存为&.bmp&qot;文件的缓冲区复制到剪贴板?也就是说,我有一个Windows V3位图(包括标题)的原始缓冲区,我可以从字面上write()将其复制到一个文件,并将生成一个有效的.BMP文件,但我想将其复制到剪贴板。 在OS X上,用纯C语言编写的代码如下所示(按预期运行): #include ..
发布时间:2022-08-13 15:46:52 其他开发