为什么我的讲师写的所有C文件都以#开头?
我正在阅读一些C课程笔记,每个 C程序源文件都以程序#第一行的单个文件开头.
然后有空格,然后是其他东西后跟main函数.
是什么原因#?
(现在这是不合时宜的,我不能真的问这个小伙子.)
这是一个例子(在结束时有一个额外的行#)
#
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
Run Code Online (Sandbox Code Playgroud) 由于ANSI C99存在_Bool或bool通过stdbool.h.但是printfbool 还有一个格式说明符吗?
我的意思是伪代码:
bool x = true;
printf("%B\n", x);
Run Code Online (Sandbox Code Playgroud)
哪个会打印:
true
Run Code Online (Sandbox Code Playgroud) 我希望能够调试C结构,而无需显式键入它们所包含的每个属性.
即我希望能够做这样的事情:
CGPoint cgPoint = CGPointMake(0,0);
NSLog(@"%@",cgPoint);
Run Code Online (Sandbox Code Playgroud)
显然'%@'不起作用,因此问题.
我想找到检查文件是否存在于标准C++ 11,C++或C中的最快方法.我有数千个文件,在对它们做一些事情之前我需要检查它们是否全部存在.我可以写什么而不是/* SOMETHING */以下功能?
inline bool exist(const std::string& name)
{
/* SOMETHING */
}
Run Code Online (Sandbox Code Playgroud) 我可以用printf作为十六进制或八进制数打印.是否有格式标记打印为二进制或任意基数?
我正在运行gcc.
printf("%d %x %o\n", 10, 10, 10); //prints "10 A 12\n"
print("%b\n", 10); // prints "%b\n"
Run Code Online (Sandbox Code Playgroud) 我刚刚完成了一项测试,作为求职面试的一部分,一个问题让我感到难过 - 甚至使用谷歌作为参考.我想看看stackoverflow工作人员可以用它做什么:
"memset_16aligned"函数需要传递给它的16byte对齐指针,否则它将崩溃.
a)如何分配1024字节的内存,并将其与16字节边界对齐?
b)执行memset_16aligned后释放内存.
{
void *mem;
void *ptr;
// answer a) here
memset_16aligned(ptr, 0, 1024);
// answer b) here
}
Run Code Online (Sandbox Code Playgroud) 我不时会读到Fortran是或者可以比C更快进行繁重的计算.这是真的吗?我必须承认我几乎不知道Fortran,但到目前为止我见过的Fortran代码并没有表明该语言具有C所没有的功能.
如果是真的,请告诉我原因.请不要告诉我哪些语言或库对数字运算有好处,我不打算写一个app或lib来做那个,我只是很好奇.
有没有比简单地尝试打开文件更好的方法?
int exists(const char *fname)
{
FILE *file;
if ((file = fopen(fname, "r")))
{
fclose(file);
return 1;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 这个问题试图收集社区维护的关于c编程语言的优质书籍清单,目标是各种技能水平.
C是一种复杂的编程语言,通过阅读在线教程很难在旅途中学习.综合性书籍通常是学习语言的最佳方式,找到一本好书是第一步.重要的是要避免写得不好的书籍,更重要的是要避免包含严重技术错误的书籍.
请建议编辑接受的答案,以添加高质量的书籍,具有近似的技能水平和每本书的简短描述/描述.(请注意,问题已被锁定,因此不会接受新的答案.列表中会保留一个答案)
随意讨论书籍选择,质量,标题,摘要,技能水平以及您认为错误的任何其他内容.C社区认为令人满意的书籍将列在名单上; 其余的将定期删除.
对于由C和C++用户协会(ACCU)进行评论的书籍,应该与书籍一起添加指向这些评论的链接.
也可以看看:
这个问题在Meta上作为2018年删除问题审计的一部分进行了讨论.
达成共识的目的是保持其未被删除和积极维护.
以下哪种技术是将整数除以2的最佳选择,为什么?
技巧1:
x = x >> 1;
Run Code Online (Sandbox Code Playgroud)
技术2:
x = x / 2;
Run Code Online (Sandbox Code Playgroud)
这x是一个整数.
c ×10
c++ ×3
printf ×2
boolean ×1
cocoa ×1
cocoa-touch ×1
division ×1
file ×1
filesystems ×1
fortran ×1
objective-c ×1
optimization ×1
performance ×1
stream ×1