Questions tagged «c»

C是用于系统编程(OS和嵌入式),库,游戏和跨平台的通用编程语言。该标记应与ISO 9899标准(除非另有说明,最新版本9899:2018中定义的有关C语言的一般问题)一起使用-还要使用c89,c99,c11等标记特定于版本的请求。C与C ++截然不同,在没有合理理由的情况下,不应将其与C ++标记结合使用。

12
const char *串联
我需要串联两个这样的const字符: const char *one = "Hello "; const char *two = "World"; 我该怎么做呢? 我char*从具有C接口的第三方库传递了这些,所以我不能简单地使用它们std::string。

12
C在哪里不是C ++的子集?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 我读过很多书,其中C是C ++的子集。 有些书说C是C ++的子集,除了一些小细节。 在什么情况下代码将用C而不是C ++进行编译,在什么情况下?
116 c++  c 

3
将结构初始化为0
如果我有这样的结构: typedef struct { unsigned char c1; unsigned char c2; } myStruct; 将此结构初始化为0的最简单方法是什么?以下足够吗? myStruct _m1 = {0}; 还是我需要将每个成员显式初始化为0? myStruct _m2 = {0,0};
116 c  struct  initialization 

3
#if defined(WIN32)和#ifdef(WIN32)之间的区别
我正在编译将在linux gcc 4.4.1 C99上运行的程序。 我只是在输入#defines来分隔将在Windows或Linux上编译的代码。但是,我得到了这个错误。 error: macro names must be identifiers. 使用此代码 #ifdef(WIN32) /* Do windows stuff #elif(UNIX) /* Do linux stuff */ #endif 但是,当我更改为该错误时,该错误已修复: #if defined(WIN32) /* Do windows stuff #elif(UNIX) /* Do linux stuff */ #endif 我只是想知道为什么会收到该错误,为什么#defines不同? 非常感谢,
116 c 

3
如何在标头中声明要由c中的多个文件使用的结构?
如果我有带有结构的source.c文件: struct a { int i; struct b { int j; } }; 如何在另一个文件(即func.c)中使用此结构? 我应该创建一个新的头文件,在其中声明结构并将其包含在func.c吗? 还是应该在头文件中定义整个结构,并在source.c和中都包含它func.c?如何extern在两个文件中声明结构? 应该typedef吗 如果是这样,怎么办?
115 c  file  header  structure 

9
在C ++和C中将'const int'与'int const'作为函数参数
考虑: int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; } 这两个功能在各个方面都是相同的还是有所不同? 我对C语言的答案很感兴趣,但是如果C ++语言中有一些有趣的东西,我也想知道。
115 c++  c  const 

8
C中是否允许使用负数组索引?
我只是在阅读一些代码,发现该人正在使用arr[-2]来访问之前的2nd元素arr,如下所示: |a|b|c|d|e|f|g| ^------------ arr[0] ^---------- arr[1] ^---------------- arr[-2] 可以吗 我知道那arr[x]和*(arr + x)。那么arr[-2]是*(arr - 2),这似乎确定。你怎么看?
115 c  arrays 


4
为什么编译器没有报告缺少分号?
我有这个简单的程序: #include <stdio.h> struct S { int i; }; void swap(struct S *a, struct S *b) { struct S temp; temp = *a /* Oops, missing a semicolon here... */ *a = *b; *b = temp; } int main(void) { struct S a = { 1 }; struct S b …
115 c  freeform 

6
C / C ++程序的最大堆栈大小
我想在100 X 100的阵列上做DFS。(数组的表示元素代表图形节点)因此,假设情况最糟,递归函数调用的深度可能会达到10000,而每次调用最多会占用20个字节。那么可行的方法是否有可能发生堆栈溢出? C / C ++中的最大堆栈大小是多少? 请同时为以下两者指定gcc: 1)Windows上的cygwin 2)Unix 一般限制是什么?
115 c++  c  stack 

4
将简单的套接字转换为SSL套接字
我编写了简单的C程序,这些程序使用套接字(“客户端”和“服务器”)。(UNIX / Linux使用) 服务器端只是创建一个套接字: sockfd = socket(AF_INET, SOCK_STREAM, 0); 然后将其绑定到sockaddr: bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)); 并收听(并接受和读取): listen(sockfd,5); newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen); read(newsockfd,buffer,255); 客户端创建套接字,然后对其进行写入。 现在,我想以最简单,最田园,最整洁和最快的方式将这个简单的连接转换为SSL连接。 我试图将OpenSSL添加到我的项目中,但是找不到实现我想要的东西的简单方法。
115 c  linux  sockets  unix  ssl 

12
C数据类型如何“被大多数计算机直接支持”?
我正在阅读K&R的“ C编程语言”,并发现了这一说法[Introduction,p。1。3]: 因为大多数计算机直接支持C提供的数据类型和控制结构,所以实现自包含程序所需的运行时库很小。 粗体字表示什么意思?是否有计算机不直接支持的数据类型或控制结构的示例?
114 c 


12
C语言的滚动中值算法
我目前正在研究一种算法,以在C语言中实现滚动中值过滤器(类似于滚动均值过滤器)。从我对文献的搜索来看,似乎有两种相当有效的方法来实现。首先是对值的初始窗口进行排序,然后执行二进制搜索以插入新值,并在每次迭代时都删除现有值。 第二种方法(来自Hardle和Steiger,1995年,JRSS-C,算法296)构建了一个双端堆结构,一端为maxheap,另一端为minheap,中间为中值。这产生了线性时间算法,而不是O(n log n)。 这是我的问题:实施前者是可行的,但是我需要在数百万个时间序列上运行它,因此效率非常重要。事实证明,后者非常难以实施。我在R的stats软件包的代码的Trunmed.c文件中找到了代码,但这是相当难以理解的。 有人知道线性时间滚动中值算法的编写良好的C实现吗? 编辑:链接到Trunmed.c代码http://google.com/codesearch/p?hl=zh-CN&sa=N&cd=1&ct=rc#mYw3h_Lb_e0/R-2.2.0/src/library/stats/src/Trunmed.c
114 c  algorithm  r  statistics  median 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.