C/C++
嘿碳头
这个作者很懒,什么都没留下…
展开
-
关于求字符串长度的问题,(strlen(),str.size()和str.length())
strlen() str.size() 和str.length()的用法及计算出的字符串和字符数组的长度原创 2017-08-08 12:01:38 · 1684 阅读 · 1 评论 -
关于C头文件吗中定义或声明变量的问题
1.谨记一点,#include<myhead.h> 只是头文件内容在此处的文本展开2.c语言文件全局区的变量是若非static声明,实在其他同目录下的文件内可见的。所以得出以下结论:假设头文件中有:int a;1.头文件中声明且定义的话此时若有两个文件同时包含了头文件,则会在两个文件中都定义了a,所以重定义,可在头文件中int a 前加static避免;2.头文...原创 2018-09-13 21:29:50 · 2259 阅读 · 0 评论 -
C++中的nullptr的定义
constclass nullptr_t{public: template<class T> inline operator T*() const { return 0; } template<class C, class T> inline operator T C::*() const { ret...转载 2018-06-17 15:35:11 · 3375 阅读 · 0 评论 -
dll动态库连接
假设有dll1.h ,dll1.cpp,dll1.dll,dll1.lib其中 dll1.h是头文件,dll1.cpp是头文件中函数的实现文件,build 后生成dll1.dll和dll1.lib在.h和.cpp文件上一层目录的debug文件夹中。自己又创建了一个工程,建立了source.cpp文件。简单的方法:把.h .lib .dll 文件copy到与source.cpp文件平...原创 2018-02-08 16:04:02 · 443 阅读 · 0 评论 -
c++中四种类型转换的区别
1、static_cast,支持子类指针到父类指针的转换,并根据实际情况调整指针的值,反过来也支持,但会给出编译警告,它作用最类似C风格的“强制转换”,一般来说可认为它是安全的;2、dynamic_cast,支持子类指针到父类指针的转换,并根据实际情况调整指针的值,和static_cast不同,反过来它就不支持了,会导致编译错误,这种转换是最安全的转换;3、reinterpret_cast,支持任...原创 2018-06-17 15:23:36 · 356 阅读 · 0 评论 -
泛化之美--C++11可变模版参数的妙用
1概述C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。相比C++98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数无疑是一个巨大的改进。然而由于可变模版参数比较抽象,使用起来需要一定的技巧,所以它也是C++11中最难理解和掌握的特性之一。虽然掌握可变模版参数...转载 2018-06-24 12:19:09 · 193 阅读 · 0 评论 -
C++中流状态badbit, failbit, eofbit
1. badbit表示发生系统级的错误,如不可恢复的读写错误。通常情况下一旦badbit被置位,流就无法再使用了。2. failbit 表示发生可恢复的错误,如期望读取一个数值,却读出一个字符等错误。这种问题通常是可以修改的,流还可以继续使用。3. 当到达文件的结束位置时,eofbit 和 failbit 都会被置位。4. goodbit 被置位表示流未发生错误。如果badbit failbit ...原创 2018-06-23 12:48:37 · 7106 阅读 · 0 评论 -
有关C++中static关键字的总结
static声明的变量全部都只存在于全局区1.在文件范围内 a.cpp中函数或全局变量用static关键字声明(静态全局变量)后,那么在b.cpp中将不可见。2.在函数块内(静态局部变量) 函数中定义了static变量,则此变量既有全局变量的属性也有局部变量的属性,其值存在于全局区,但是却只能在定义它的函数内使用。3.在类内(假设A是类名) 1)类...原创 2018-06-05 10:42:54 · 142 阅读 · 0 评论 -
C和C++函数定义与声明的返回值类型不一样时
无论在C中还是C++中(C用的是gcc编译器,C++用的是g++编译器),如果在a文件中定义了一个函数func,其返回值为float。而在b的文件中声明为了int func,那么在b中使用func计算的结果并不是有float自动类型转化为int的值,而是一个错误的值。具体见下面的代码:a.c#include<stdio.h>float func(int a, int b){ ...原创 2018-05-21 00:40:14 · 13197 阅读 · 2 评论 -
C/C++全局变量和局部变量重名问题
在局部变量内可以利用作用与符::来访问全局变量;如下代码:#include<iostream>using namespace std;int a = 1;int func() { int a = 0; cout << a << endl; cout << ::a << endl; return 0;}int main...原创 2018-04-12 14:30:03 · 2480 阅读 · 0 评论 -
关于c语言字符串中sizeof指针的问题
#include#include#includeint main(){ FILE *f1=fopen("C:/Users/yangb/Desktop/11.txt","r"); assert(f1); char ch[100]; fgets(ch,100,f1); printf("%s\n",ch); printf("%s\n",ch+1);原创 2017-11-02 15:00:59 · 2444 阅读 · 2 评论 -
C++输出流名字重命名,代码重用
C++输出名重命名,代码重用原创 2017-08-06 16:55:55 · 441 阅读 · 0 评论 -
关于结构体对齐的问题
#include<stdio.h> typedef struct A{ char c; short int a; int b; double d; }A; typedef struct B{ double d; A Aa; int b; short int a; c...原创 2018-09-13 22:43:59 · 320 阅读 · 0 评论