首先,我要澄清,我现在非常熟悉的定义size_t和intptr_t,我不希望他们完成的任务的任何重复.
相反,我想知道以下内容.你知道任何平台,除了 x86/DOS(带有难以忍受的内存模型)演员阵容
void* a = ...;
size_t b = (size_t)a;
Run Code Online (Sandbox Code Playgroud)
实际上丢失了比特或字节?
谢谢!
有人可以告诉我哪个是C语言中套接字编程的最佳指南/书籍/材料?我正在阅读beej的网络编程指南,但它只是给出一个概述.
你能推荐其他书籍或指南吗?
我做了这样的功能:
bool IsSameString(char* p1, char* p2)
{
return 0 == strcmp(p1, p2);
}
Run Code Online (Sandbox Code Playgroud)
问题是,有时,错误地传递了不是字符串的参数(意味着p1或p2不以空字符终止).然后,strcmp继续比较,直到它到达不可访问的内存并崩溃.有安全版strcmp吗?或者我能否以安全的方式判断p1(和p2)是否为字符串?
在之前的一个问题中,我认为一个好的答案被推荐用于建议使用宏
#define radian2degree(a) (a * 57.295779513082)
#define degree2radian(a) (a * 0.017453292519)
Run Code Online (Sandbox Code Playgroud)
而不是内联函数.请原谅新手问题,但在这种情况下,宏的错误是什么?
我正在尝试使用带有泛型类型的C stdarg.h lib.int类型,是我的泛型类型>要理解它,请继续阅读.所以,我的问题是:
我有一个函数接受可变数量的参数.喜欢
void function (int paramN, ...);Run Code Online (Sandbox Code Playgroud)
在我的程序中,没有办法知道,哪个是变量参数的类型,它可以是char,数组,int,short,函数点等...就像
function (paramN, "Hey, I'm a string", 1, function_pint, array, -1); // -1 is a sentinel.Run Code Online (Sandbox Code Playgroud)
所以,我认为,一个int,是32位,在x86(32位)系统中,这将保存所有内存地址.所以,如果我用int得到所有参数,那就不会有问题了,例如,"嘿,我是一个字符串"这个字符串的地址,通常适合32位变量,所以,我只需要制作演员.
我是正确的?
我可以做吗?
注意:我不想让我的函数像printf(这个解决方案,在这种情况下不适合好吗?)
谢谢你的回答.
抱歉我的英语不好.
我可以使用代码进行struct初始化:
struct struct_type_id struct_name_id = { value1, value2, value3 };
Run Code Online (Sandbox Code Playgroud)
但不能用:
struct struct_type_id struct_name_id;
struct_name_id = { value1, value2, value3 };
Run Code Online (Sandbox Code Playgroud)
为什么我可以用前者来做,但是后者不能用gcc,g ++,vc2008,vc6?换句话说,为什么c/c ++编程语言不支持这种语法?
谢谢.
我是Stack Overflow的初学者.我正在使用C/C++开发Unix平台.在这些方面了解基本编程我怎样才能从多线程开始?
多线程似乎非常有趣,我想在这方面发展我的知识.
我怎样才能开始使用多线程,哪些是最好的技术/书籍/电子书/文章可以尽早获取概念?
实际上我正在尝试printf()使用varags在C中编写自己的.但我没有得到正确的解决方案.谁能帮我吗?
您是否可以对数据类型的最小大小做出任何假设?
到目前为止我所读到的内容:
浮动???双???
值float.h和limits.h系统是否相关?