C和C++是不同的语言,我们知道blababla.
但如果这些语言不同,为什么仍然可以使用malloc或free这样的函数?我确信C++有各种各样的尘土飞扬的东西,因为C,但是由于C++是另一种语言,为什么不删除这些东西,使它变得不那么臃肿,更干净清晰?
是因为它允许程序员在没有OO模型的情况下工作,还是因为某些编译器不支持C++的高级抽象功能?
我一直在环顾四周,我很惊讶似乎没有办法在libcurl中解析标题(这些日子似乎是http的规范C库).
我发现最接近的是邮件列表帖子,有人建议其他人搜索邮件列表档案.
由通过的libcurl提供的唯一的设施SETOPT是CURLOPT_HEADERFUNCTION将进料头的响应在时间单行.
考虑到标题可以跨越多行,这似乎完全过于原始.理想情况下,这应该一次正确完成(最好由库本身完成),而不是留给应用程序开发人员不断重新发明.
编辑:
天真无效的一个例子,请参阅以下要点,其中包含libcurl代码示例和无法解析的正确形成的http响应:https: //gist.github.com/762954
我只知道对齐内存分配的基本思路.但我并不关心对齐问题,因为我不是汇编程序员,也没有MMX/SIMD的经验.而且我认为这是过早优化之一.
这些天人们越来越多地谈论缓存命中,缓存一致性,大小优化等.一些源代码甚至分配在CPU缓存行上显式对齐的内存.
坦率地说,我不知道我的i7 CPU的缓存行大小是多少.我知道大尺寸对齐没有坏处.但是没有SIMD会真的得到回报吗?
假设程序中有100000项100字节数据.访问这些数据是该计划最密集的工作.
如果我们改变数据结构并使所有100字节大小的数据按16字节对齐,是否可以获得显着的性能增益?10%?5%?
我想使用加密库来实现RSA,DSA等.任何人都可以建议如果你使用它哪个更好.
我怎么能对数组使用动态内存分配?
例如,下面是一个数组,其中我从.txt文件中读取单个单词并在数组中逐字保存:
码:
char words[1000][15];
Run Code Online (Sandbox Code Playgroud)
这里1000定义了数组可以保存的单词数,每个单词可以包含不超过15个字符.
现在我希望该程序应该为它计算的单词数量动态分配内存.例如,.txt文件可能包含大于1000的单词.现在我希望程序应该计算单词数并相应地分配内存.
由于我们不能使用变量代替[1000],因此我对如何实现逻辑完全空白.请帮助我这方面.
我需要创建专门的HTTP服务器,为此我计划使用epoll sycall,但我想利用多个处理器/核心,我无法提出架构解决方案.ATM我的想法是跟随:用自己的epoll描述符创建多个线程,主线程接受连接并在线程epoll之间分配它们.但有更好的解决方案吗?我可以在高负载架构上阅读哪些书籍/文章/指南?我只看过C10K文章,但大多数链接到例子已经死了:(并且仍然没有关于这个主题的深入书籍:(.
谢谢你的回答.
UPD:请更具体,我需要材料和示例(nginx不是一个例子,因为它太复杂,并且有多个抽象层来支持多个系统).
最近我遇到了一个结构定义,
struct arr {
int cnt;
struct {
int size;
int *name;
} list[0];
};
Run Code Online (Sandbox Code Playgroud)
现在我不知道list[0]被宣布的原因.我感兴趣的是为什么使用它.它有什么优势吗?如果是,那是什么?
有没有人经历混合-g(调试符号)和-O2(最佳安全优化)与gcc编译器?
我必须调试分发给最终用户的发布程序的崩溃,这些程序可能会将我发回给核心文件.
我一直习惯称:
gdb << myprogram >> << core file >>
并看看问题出在哪里.现在我可以看到调用跟踪但没有调试符号我遇到了麻烦.
任何的想法?
我想编写自己的编程语言作为c编程语言的扩展.我正在发明的整个编程语言只是简单的转换为有效的c代码.例如:
namespace TcpConnection {
void* connect(char *addr)
}
Run Code Online (Sandbox Code Playgroud)
会转化为:
void* TcpConnection_connect(char *addr)
Run Code Online (Sandbox Code Playgroud)
所做的一切都是简单的名称替换.这只是我想提供的扩展的一个例子.另一个简单的扩展是函数重载(这将连接到函数名称末尾的参数类型.
在任何情况下,结果都是完全有效的C代码.有没有办法在不进入gcc代码的情况下这样做?
c compiler-construction gcc translation programming-languages
c ×10
c++ ×3
gcc ×2
architecture ×1
arrays ×1
caching ×1
cryptography ×1
embedded ×1
epoll ×1
high-load ×1
history ×1
http ×1
http-headers ×1
libcurl ×1
memory ×1
structure ×1
translation ×1
unions ×1