Questions tagged «c»

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

13
使用exit()函数
我想知道如何以及何时可以使用exit()本书中的程序之类的功能: #include<stdio.h> void main() { int goals; printf("enter number of goals scored"); scanf("%d",&goals); if(goals<=5) goto sos; else { printf("hehe"); exit( ); } sos: printf("to err is human"); } 当我运行它时,它显示错误:调用未定义的函数exit()。 另外,我想知道如何创建一个选项来关闭程序运行所在的窗口?例如,我制作了一个菜单驱动程序,其中包含多个选项,其中一个选项是“退出菜单”。我该如何退出程序(即关闭窗口)?
99 c 



14
如何在C / C ++中编写日志基础(2)
有什么办法可以写log(base 2)函数? C语言有2个内置函数->> 1。log以e为底。 2。log10 10为基数; 但是我需要以2为底的对数函数。该如何计算。
98 c++  c 

2
在Linux内核模块中读取/写入文件
我知道所有关于为什么不应该从内核读取/写入文件,而是如何使用/ proc或netlink来执行此操作的讨论。我还是想读/写。我还阅读了《 驾驶我的坚果》-内核中不应该做的事情。 但是,问题在于2.6.30无法导出sys_read()。相反,它被包裹在SYSCALL_DEFINE3。因此,如果我在模块中使用它,则会收到以下警告: WARNING: "sys_read" [xxx.ko] undefined! WARNING: "sys_open" [xxx.ko] undefined! 显然insmod无法加载模块,因为链接未正确进行。 问题: 2.6.22之后如何在内核中读取/写入(其中sys_read()/ sys_open()不导出)? 通常,如何使用SYSCALL_DEFINEn()内核中包装在宏中的系统调用?


12
在C中解析命令行参数?
我正在尝试编写一个程序,可以在C中逐行,逐字或逐个字符地比较两个文件。它必须能够在命令行选项中读取-l -w -i or --... 如果选项为-l,则逐行比较文件。 如果选项为-w,则逐字比较文件。 如果选项为-它会自动假定下一个arg是第一个文件名。 如果选项为-i,则以不区分大小写的方式比较它们。 默认情况下是逐字符比较文件。 只要不同时输入-w和-l且文件数不超过2个,输入选项多少次无关紧要。 我什至不知道从哪里开始解析命令行参数。请帮忙 :( 这就是我为所有内容准备的代码。我还没有对它进行错误检查,但是我想知道我是否以过于复杂的方式编写东西? /* * Functions to compare files. */ int compare_line(); int compare_word(); int compare_char(); int case_insens(); /* * Program to compare the information in two files and print message saying * whether or not this was successful. …

9
在C中获取当前时间
我想获取系统的当前时间。为此,我在C中使用以下代码: time_t now; struct tm *mytime = localtime(&now); if ( strftime(buffer, sizeof buffer, "%X", mytime) ) { printf("time1 = \"%s\"\n", buffer); } 问题在于此代码给出了一些随机时间。另外,随机时间每次都不同。我想要系统的当前时间。
97 c  time  time-t  localtime 


11
函数过早返回的效率
作为一个缺乏经验的程序员,我经常遇到这种情况,尤其是对于我要优化的一个雄心勃勃,速度密集的项目,我感到特别奇怪。对于主要的类C语言(C,objC,C ++,Java,C#等)及其常用的编译器,这两个函数是否会同样高效地运行?编译后的代码有什么区别吗? void foo1(bool flag) { if (flag) { //Do stuff return; } //Do different stuff } void foo2(bool flag) { if (flag) { //Do stuff } else { //Do different stuff } } 基本上来说,提早break或return提早有过直接的效率红利/罚金吗?堆栈框架如何参与?是否有优化的特殊情况?是否有任何因素(例如内联或“内容”的大小)会对此产生重大影响? 我一直支持通过次要优化来提高可读性(我在参数验证中经常看到foo1),但是这种情况经常出现,因此我想一劳永逸地抛开所有烦恼。 而且我知道过早优化的陷阱...呃,那是一些痛苦的回忆。 编辑:我接受了一个答案,但是EJP的答案非常简洁地解释了为什么使用a return几乎可以忽略不计(在汇编中,return到函数末尾创建一个“分支”,这非常快。分支会更改PC寄存器和可能还会影响缓存和管道,这是很小的。)特别是在这种情况下,它实际上没有任何区别,因为if/else和和都return创建了到函数末尾的相同分支。

4
如何判断头文件的来源?
我如何知道g ++在哪里可以找到包含文件?基本上如果我 #include <foo.h> g ++将使用任何包含选项添加或更改路径来扫描搜索路径。但是,最终,有什么方法可以告诉我g ++选择编译的foo.h的绝对路径吗?如果无数的搜索路径中有多个foo.h,则尤其有用。 缺少实现该目标的方法...是否有办法让g ++告诉我,包括默认值和所有include选项后其最终搜索路径是什么?
97 c++  c  gcc  include  g++ 

7
make:什么都做不了
我正在通过一个例如pgm创建一个make文件。 http://mrbook.org/tutorials/make/ 我的文件夹eg_make_creation包含以下文件, desktop:~/eg_make_creation$ ls factorial.c functions.h hello hello.c main.c Makefile 生成文件 # I am a comment, and I want to say that the variable CC will be # the compiler to use. CC=gcc # Hwy!, I am comment no.2. I want to say that CFLAGS will be the #options …
97 c  makefile 


9
main()方法如何在C中工作?
我知道有两种不同的签名可以编写main方法- int main() { //Code } 或用于处理命令行参数,我们将其写为- int main(int argc, char * argv[]) { //code } 在C++我知道我们可以重载的方法,但是在C编译器如何处理这两个不同的签名main功能?
96 c++  c 

14
Eclipse CDT对于C标准库标头的“未解决的包含”错误
我为eclipse设置了CDT,并编写了一个简单的hello world C程序: #include <stdio.h> int main(void){ puts("Hello, world."); return 0; } 该程序可以正确构建并运行,但是eclipse始终在包含语句的旁边显示该黄色问号,即"Unresolved inclusion: <stdio.h>"当我将鼠标放在其上时。 它不会影响程序的运行,但我觉得很烦。 有谁知道如何删除它?

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.