我正在学习Device Driver和Kernel编程.根据Jonathan Corbet的书,我们main()在设备驱动程序中没有功能.
#include <linux/init.h>
#include <linux/module.h>
static int my_init(void)
{
return 0;
}
static void my_exit(void)
{
return;
}
module_init(my_init);
module_exit(my_exit);
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
main()设备驱动程序中的功能?main()功能吗?我想在Windows OS的项目中递归搜索一个字符串,例如"main".我搜索了一下,找到了一个Windows递归grep命令行的解决方案
我用两种不同的方法应用了相同的结果,结果并不像预期的那样.
比如我的做法
findstr /S "main" *.cpp
Run Code Online (Sandbox Code Playgroud)
但是当我选择的时候
findstr /S "int main" *.cpp
Run Code Online (Sandbox Code Playgroud)
我没有得到我的主要功能.这两种方法有什么区别?提供空间字符串是错误的吗?
在一次采访中,他们问我,你如何设置或重置一下?这是一个非常简单的问题,我回答了这个问题.
之后他们问我,那样做without branching.我不知道什么是分支.我搜索那个,我来到这里
http://graphics.stanford.edu/~seander/bithacks.html
但仍然没有得到分支和非分支的概念.请解释一下Branching.
我只是查找gcc的funciton属性(http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Function-Attributes.html)并遇到了该returns_twice属性.
而且我绝对无能为力,在什么情况下函数可以返回两次...我快速查阅了所提到的内容vfork(),setjmp()但仍然不知道一个适用的场景是什么样的 - 你们中的任何人使用它还是可以解释一下?
使用a struct我们可以实现class:构造函数(可以修改/重载),析构函数(可以修改/重载),运算符重载,实例方法,静态方法,public/ private/ protected字段/方法的所有功能.
那为什么我们需要class呢?
注意:我不希望答案说明struct,字段/方法是public默认的.
我写了一个非常基本的Hello World程序来了解各个部分.使用后objdump我得到了所有部分.我在用ubuntu 12.04.
在输出中我发现它是这样的:
拆卸部分.init
拆卸部分.plt
部分.text的反汇编
__do_global_dtors_aux
部分.fini的反汇编
我想知道那些部分是什么?他们存储了哪些数据?特别.plt和.fini.关于.init,.text我可以猜,但其他人怎么样?
void fun ()
{
int i;
int a[]=
{
[0]=3,
[1]=5
};
}
Run Code Online (Sandbox Code Playgroud)
c语言是否支持上述[]数组赋值方式.如果是哪个c版本.
我使用gcc编译上面的代码它工作正常.
但我以前从未见过这种作业.
我正在尝试学习C++,并编写了这段代码.根据我的理解,这段代码需要产生输出,"Derived Class"但输出是"Base Class".请帮我理解这个.
#include <iostream>
using namespace std;
class Base {
public:
char* name;
void display() {
cout << name << endl;
}
Run Code Online (Sandbox Code Playgroud)
};
class Derived: public Base {
public:
char* name;
void display() {
cout << name << ", " << Base::name << endl;
}
};
int main() {
Derived d;
d.name = "Derived Class";
d.Base::name = "Base Class";
Derived* dptr = &d;
Base* bptr = dptr;
bptr->display();
}
Run Code Online (Sandbox Code Playgroud)
请考虑我作为初学者,并解释为什么它的输出 "Base Class"
这是一个面试问题.如何计算.浮点数后的数字位数.
例如,如果给出3.554输出= 3
对于43.000输出= 0.我的代码片段就在这里
double no =3.44;
int count =0;
while(no!=((int)no))
{
count++;
no=no*10;
}
printf("%d",count);
Run Code Online (Sandbox Code Playgroud)
有些数字无法用float类型表示.例如,没有73.487在float型,由指示的数目float中c是73.486999999999995近似的.
现在如何解决它,因为它正在进行一些无限循环.
注意:在IEEE 754规范中,32位浮点数被分为24 + 7 + 1位.7位表示尾数.
我遇到了一个项目,在那里我发现了一些我无法理解的代码.我刚开始C++,所以对我来说这似乎是个大问题.我提供的项目很少,我无法理解.
class abc
{
public:
//some stuff
abc();
};
abc::abc()
{
int someflag = 0;
//code
if(someflag == 0)
{
do
{
//few strcpy operations
{ //(My Question)Without any condition braces started
//variable initialization
}
}while(condition);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题......
do-while循环的内部括号中发生了什么?do-while循环内初始化变量(我提到过)的范围是什么
?帮我理解这个.
c ×6
c++ ×4
arrays ×1
c++11 ×1
class ×1
disassembly ×1
findstr ×1
function ×1
inheritance ×1
linux ×1
linux-kernel ×1
objdump ×1
struct ×1
windows-7 ×1