小编FL4*_*SOF的帖子

如何在C中实现函数重载?

有没有办法在C中实现函数重载?我正在寻找简单的函数来重载像

foo (int a)  
foo (char b)  
foo (float c , int d)
Run Code Online (Sandbox Code Playgroud)

我认为没有直接的方式; 我正在寻找解决方法,如果存在的话.

c overloading

234
推荐指数
12
解决办法
18万
查看次数

当内核使用过度使用内存时,是否需要在分配内存后检查NULL

通常的做法是在malloc()之后检查NULL(是否成功分配内存),有些事情

void *ptr = malloc(10);    
if (ptr != NULL) {  
  // do some thing usefull  
} else {  
 // no memory. safely return/throw ...  
}  
Run Code Online (Sandbox Code Playgroud)

在内核中启用内存过量使用,是否有可能获得NULL?我应该遵循宗教检查每次分配NULL的做法吗?尽管有积极的过度使用机制(我猜值1),malloc会返回NULL吗?

事实上,Android内核使用内存过量使用(不确定值,很想知道它(过度使用值)及其意义).Android中的一些框架源代码(C/C++)代码(可能是第三方)不会检查NULL,也不会在分配后捕获bad_alloc.我错过了什么吗?

关于过度使用内存,SO中有一些线程,但没有一个解决了我的困惑.

编辑:如果采用积极的过度使用,则不会返回NULL(假设1).当没有可用的物理内存并尝试访问分配的内存(写入分配的内存)时,OOM将终止某个进程并为应用程序分配内存,直到它被依次终止(假设2).在任何一种情况下,我都没有看到任何需要检查NULL(内存被分配或进程被杀死).我的假设是对的吗?
便携性不是这个问题的关注点.

memory malloc android-ndk

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

stl排序 - 严格的弱排序

为什么STL使用严格弱排序的比较函数?为什么不能进行部分订购?

c++ algorithm stl strict-weak-ordering

18
推荐指数
4
解决办法
7688
查看次数

有没有办法在C中使函数成为原子?

有没有办法在C中创建一个原子函数.

我不是在寻找便携式解决方案.(平台寻找 - Win,Linux)

c operations atomic

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

将物品推入STL容器后的段故障

typedef struct temp  
{  
        int a,b;  
        char  *c;  
        temp(){ c = (char*)malloc(10);};  
        ~temp(){free(c);};  
}temp;  

int main()  
{  
   temp a;  
   list<temp>   l1;  
   l1.push_back(a);  
   l1.clear();  
   return 0;  

}  
Run Code Online (Sandbox Code Playgroud)

给出分段错误.

c++ memory pointers memory-management stl

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

为什么我的C代码运行缓慢?

我在C中编写了一些代码,我惊讶地发现它执行的时间比我预期的要长.我想知道哪些操作成本高昂以及如何摆脱它们.

我使用赋值语句,条件(嵌套),循环,函数调用和回调.

对常见的C性能缺陷有什么好的参考?

我可以使用一个好的剖析器吗?


谢谢你们

感谢您的所有投入.你是绝对正确的:它的算法可以减慢事情(大幅度).虽然通过编码实践可以获得一点性能提升 - 我100%确信只有错误的算法才能大大减慢速度.

事实上:我正在研究RB树并按升序插入节点.花了很多时间(和Binary Search Tree(Skewed)一样糟糕).在寻求你的建议后,我检查了算法,我在平衡方面犯了一个错误,使树倾斜(倾斜).我纠正了.

再次感谢您的建议.

c performance

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

具有以下功能的最佳压缩算法

什么是具有以下功能的最佳压缩算法:

  • 应该花费更少的时间来解压缩(可以花费更多的时间压缩)
  • 应该能够压缩排序数据(大约3,000,000个字符串/整数...)

请与指标一起建议:压缩率,压缩和解压缩的算法复杂度(如果可能)?

compression

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

在C中使用void*指针的缺点

void *在C中使用有许多缺点(与内存相关,类型相关,效率明智......).尽管如此,我们还是使用它们来提供灵活性.

列出使用的缺点/缺点void *(以及C中的首选解决方案 - 如果可能的话).

编辑: 请通过以下链接:http: //attractivechaos.wordpress.com/2008/10/02/using-void-in-generic-c-programming-may-be-inefficient/

c void-pointers

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