- 浏览: 763516 次
- 性别:
- 来自: 深圳
文章列表
普通函数的实现是编译器,有参数压栈,生成汇编语言的CALL,返回参数,执行汇编语言的RETURN等的开销,但宏没有,宏的实现是预处理器,一般用大写字母区别于普通函数
内联函数和普通函数一样,任何在类中定义的函数自动成为内联函数,非类的函数加inline成为内联,但类与非类的内联函数体的具体实现要和声明放一起,一般放头文件中。
class A{
inline void fun1(){};
inline void fun2();
}
inline void A::fun2()
{
}
这两种都是可以的
sync:同步数据,将内存中的数据刷新到硬盘上,相当于refresh
shutdown +10:系统就会10分钟后关机
文件名以.开关是的隐藏文件
usr:UNIX Software Resource
struct{
int I;
double d;
}
size = 12;
struct{
char c;//size=1;
double d;
}
size = 12;
struct{
int I;
long double ld;
}
size = 16;
struct{
char c;
long double ld;
}
size = 16;
struct和class有两个区别:
第一:struct中的成员默认是public的,class中的默认是private的。
第二:在用模版的时候只能写template < ...
sleep()//秒
msleep()//毫秒
usleep()//微秒
以前为了模拟鼠标点击用过这些函数,可以让进程中断,今天发现我原来的做法其实不对.
这组函数会将你当前的线程/进程变为“睡眠”状态。 这个“睡眠”是深度意义的睡眠, 睡眠期间内核不会分配给程序时间片, 所以程序什么都不做, 更不用提界面的刷新了。 直接导致的问题就是用户无法与程序交互。 所以说直接使用sleep函数睡眠是常见的错误方案之一。
另外一种更常见的错误方法是使用QTimer+死循环。 类似下面的代码:
QTimer t;
t.start();
while(t.elapsed() < 250);
这个简单粗暴 ...
goto本没有错,之所以不推荐是程序员自己造成的,但有一处可妙用:
{
{
{
...
goto error;
}
}
}
error:
...
就象楼房着火了,来不及从楼梯一级一级往下走,可从窗口跳出火坑。所以我们主
张少用、慎用goto 语句,而不是禁用
1.通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只
要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库
功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。
2.头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件
中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错
的负担。
extern变量不能为static
- 博客分类:
- c++
static变量,即使在其它文件被声明为extern,链接器也不会找到他
#include<iostream>
using namespace std;
int main()
{
int ia[3][4]={
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}
};
int (*p)[4]=ia;
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
cout<< ...
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a[]={1,2,3,4,5};
vector<int> v(a,a+4);
for(vector<int>::iterator iter=v.begin();
iter!=v.end();
++iter)
{
...
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
cin >> str;
const char *c = new char[5];
c = str.c_str();
for(int i=0;i<5;i++)
cout<<c[i];
cout << endl;
} ...
发现由于仅有的java基础无法满足需求了,工作中许多遇到的问题虽然可以解决,但是解决完后早已没有一丝激动,而是无比空虚,于是决定将c++ primer和c++编程思想的习题都做一遍,虽然有的已经用c,java实现数次了,但是我还是觉得有必要再做一次,可能贴的程序会很白痴,望大家见谅。也欢迎高手提出宝贵意见,不胜感激
sensors:测试主机状况(温度什么的)
lsmod:usb芯片版本
iostat: cpu与存储设备状态
QFile file(filePath);
if (not file.open(QFile::ReadOnly)) {
return;
}
1.直接初始化
QDataStream stream(file);
2.如果不方便直接初始化
QByteArray byteArray = file.readAll();
QBuffer buffer(byteArray);
buffer.open(QFile::ReadOnly);//这里要和上面一样,要不然会无法读取
stream.setDevice(&buffer);
QIODevice *device ...