Questions tagged «c»

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

22
什么是C ++中的“->”运算符?
Наэтотвопросестьответына 堆栈溢出нарусском:Чтотакоеоператор “ - >” вС++? 看完后隐藏的功能和C ++ / STL的暗角上comp.lang.c++.moderated,我完全意外的是,下面的代码片断编译并在两个Visual Studio 2008和G ++ 4.4的工作。 这是代码: #include <stdio.h> int main() { int x = 10; while (x --> 0) // x goes to 0 { printf("%d ", x); } } 输出: 9 8 7 6 5 4 3 2 1 0 …

10
提高SQLite每秒INSERT的性能
优化SQLite是棘手的。C应用程序的大容量插入性能可以从每秒85次插入到每秒96,000次以上插入! 背景:我们正在将SQLite用作桌面应用程序的一部分。我们将大量配置数据存储在XML文件中,这些文件将被解析并加载到SQLite数据库中,以便在初始化应用程序时进行进一步处理。SQLite是这种情况的理想选择,因为它速度快,不需要专门的配置,并且数据库作为单个文件存储在磁盘上。 基本原理: 最初,我对看到的性能感到失望。事实证明,取决于数据库的配置方式和使用API​​的方式,SQLite的性能可能会发生很大的变化(对于批量插入和选择)。弄清楚所有选项和技术是什么都不是一件容易的事,因此,我认为创建此社区Wiki条目与Stack Overflow阅读器共享结果以节省其他人的麻烦是审慎的做法。 实验:我认为,最好是编写一些C代码并实际衡量各种选择的影响,而不是简单地谈论一般意义上的性能提示(即“使用事务!”)。我们将从一些简单的数据开始: 28 MB TAB分隔的文本文件(约865,000条记录),用于多伦多市的完整运输时间表 我的测试计算机是运行Windows XP的3.60 GHz P4。 使用Visual C ++ 2005 将代码编译为“发布”,“完全优化”(/ Ox)和“最爱快速代码”(/ Ot)。 我正在使用直接编译到测试应用程序中的SQLite“合并”。我刚好拥有的SQLite版本(3.6.7)有点旧,但是我怀疑这些结果将与最新版本相当(如果您另有意见,请发表评论)。 让我们写一些代码! 代码:一个简单的C程序,它逐行读取文本文件,将字符串拆分为值,然后将数据插入SQLite数据库。在此“基准”版本的代码中,创建了数据库,但实际上不会插入数据: /************************************************************* Baseline code to experiment with SQLite performance. Input data is a 28 MB TAB-delimited text file of the complete Toronto Transit System schedule/route info from http://www.toronto.ca/open/datasets/ttc-routes/ …


28
我要转换malloc的结果吗?
在这个问题,有人建议意见,我应该不会投的结果malloc,即 int *sieve = malloc(sizeof(int) * length); 而不是: int *sieve = (int *) malloc(sizeof(int) * length); 为什么会这样呢?
2406 c  malloc  casting 


10
为什么单独循环中的元素加法比组合循环中的要快得多?
假设a1,b1,c1,并d1指向堆内存和我的数字代码具有下列核心循环。 const int n = 100000; for (int j = 0; j < n; j++) { a1[j] += b1[j]; c1[j] += d1[j]; } 该循环通过另一个外部for循环执行了10,000次。为了加快速度,我将代码更改为: for (int j = 0; j < n; j++) { a1[j] += b1[j]; } for (int j = 0; j < n; j++) { c1[j] += …

4
??!??!运算符在C中执行?
我看到了一行C,看起来像这样: !ErrorHasOccured() ??!??! HandleError(); 它编译正确,似乎可以正常运行。看起来它正在检查是否发生了错误,如果发生,它将进行处理。但是我不太确定它的实际作用或运行方式。看起来程序员似乎正在尝试表达他们对错误的感受。 我以前从未??!??!在任何编程语言中见过它,并且在任何地方都找不到它的文档。(Google无法帮助搜索字词,例如??!??!)。它是做什么的,代码示例如何工作?
1989 c  operators  trigraphs 

5
什么是 ”:-!!” 用C代码?
我碰到了/usr/include/linux/kernel.h中的这个奇怪的宏代码: /* Force a compilation error if condition is true, but also produce a result (of value 0 and type size_t), so the expression can be used e.g. in a structure initializer (or where-ever else comma expressions aren't permitted). */ #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) #define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct …
1664 c  linux  macros  linux-kernel 



23
编译用于高放射性环境的应用程序
我们正在编译一个嵌入式C / C ++应用程序,该应用程序部署在受到电离辐射轰击的环境中的屏蔽设备中。我们正在使用GCC并为ARM进行交叉编译。部署后,我们的应用程序会生成一些错误数据,并且崩溃的次数比我们想要的要多。硬件是为此环境设计的,我们的应用程序已在该平台上运行了几年。 我们是否可以对代码进行更改,或者可以进行编译时改进以识别/纠正由单个事件引发的软错误和内存损坏?其他开发人员是否在减少软错误对长期运行的应用程序的有害影响方面取得了成功?
1456 c++  c  gcc  embedded  fault-tolerance 





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.