编程拾遗

基础太弱,时常有各种奇怪的问题,特此记录疑问。

2016.03.05

Q:定义一个结构体最后为什么要再加一个分号?

A:定义一个结构体最后加一个分号,一个声明语句;
函数外定义了一个全局的结构体变量,就可以不加分号,如果定义了多个全局的,则最后一个可以不加,申明语句也要加分号啊
结构体类型只能是声明 ,例如声明了一个结构体类型 struct student{}; 定义变量形式 类型名 变量名;

reference:http://zhidao.baidu.com/link?url=jTk0V9yaxcSsWOGLSABnr-iHT0bQd1rO27uzvbINd0Chlr9Sj7jC76z5ELaC3u9_Hpt3Y3T7CN51i1k-7Iav5K

03.06

Q: 类成员的函数定义或声明后加上const的作用是什么?

A: 加上const后,类成员函数内与类相关的数据变量不可更改。

reference:http://zhidao.baidu.com/link?url=u93w1nIHMTOXCuWGm4mOowMnbYLsH-iKfO4ieMz4NoV2jCuopZnhZOPVKgo78VkUX4wGlJ1jRdh2u4h6At9rk1ARdpPh5pdslCGGUYS7goa

时间: 2024-10-20 05:49:44

编程拾遗的相关文章

【编程拾遗】C++的static成员函数与单例模式

static小结 static的引入 static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性. 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题:如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅受此函数控制).而static变量可以保持该变

【编程拾遗】预编译头文件来自编译器的早期版本

背景 在一个MFC ActiveX的项目工程中用到了zlib相关的文件压缩程序,这些程序是c语言编写的,在用vs2012编译时提示一下错误: 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反). 特查找解决方法,记录下来. 解决办法 当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: 'pjtn

【编程拾遗】VC++中LPCTSTR、CString、char *、string之间的相互转换

字符集 在VC2012中,字符集默认采用Unicode字符集(Use Unicode Charecter Set选项),其值还可以设置为多字节字符集(Use Multi-Byte Charecter Set). 为什么要使用Unicode 可以很容易地在不同语言之间进行数据交换. 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件. 提高应用程序的运行效率. Windows 2000是使用Unicode从头进行开发的,如果调用任何一个Windows函数并给它传递一个ANSI字符串,那么

老男孩python第六期

01 python s6 day7 上节回顾02 python s6 day7 SNMP使用03 python s6 day7 大型监控架构讲解04 python s6 day7 Redis使用05 python s6 day7 定义监控文档结构06 python s6 day7 监控架构讲解07 python s6 day7 定义监控模板08 python s6 day7 自定义监控项09 python s6 day7 通过深copy实现各主机服务的自定义配置10 python s6 day7

C++拾遗--模板元编程

C++拾遗--模板元编程 前言 模板元是用于递归加速的,把运行期的函数调用变到编译期进行代码展开,类似于内联函数.下面看一个实例:斐波那契数列第n项求解. 模板元编程 #include <iostream> #include <ctime> using namespace std; //递归法 int fib(int n) { if (n < 0) return 0; if (n == 1 || n == 2) return 1; return fib(n - 1) + fi

Java HashMap拾遗

Java HashMap拾遗 @author ixenos 零碎知识 尽量返回接口而非实际的类型,如返回List.Set.Map而非ArrayList.HashSet.HashMap,便于更换数据结构,而客户端代码不用改变.这就是针对抽象编程 Map.entrySet 方法返回Map映射的 Set 视图Set<Map.Entry<K,V>>,维护entry键值对 该 set 受Map映射支持,所以对Map映射的更改可在此 set 中反映出来,反之亦然! 如果对该 set 进行迭代的

.NET面试题解析(07)-多线程编程与线程同步

系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 关于线程的知识点其实是很多的,比如多线程编程.线程上下文.异步编程.线程同步构造.GUI的跨线程访问等等,本文只是从常见面试题的角度(也是开发过程中常用)去深入浅出线程相关的知识.如果想要系统的学习多线程,没有捷径的,也不要偷懒,还是去看专业书籍的比较好. 常见面试题目: 1. 描述线程与进程的区别? 2. 为什么GUI不支持跨线程访问控件?一般如何解决这个问题? 3. 简述后台线程和前台线程的区别? 4. 说说常

C++拾遗--多线程:多线程的引入

C++拾遗--多线程:多线程的引入 前言 多线程是编程中的一个重要内容.多核时代使多线程称为一种可能,显然,一件事情多个人干,效率一定会提升.下面来看下C语言中是如何使用多线程的. 正文 先来看一个实例 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <process.h> #include <Windows.h> DWORD WINAPI run

《Thinking In Java第四版》拾遗

<Thinking In Java第四版>拾遗 转自我的github(http://katsurakkkk.github.io/2016/05/Thinking-In-Java%E7%AC%AC%E5%9B%9B%E7%89%88-%E6%8B%BE%E9%81%97) 近日重读了<Thinking In Java第四版>(可能版本比较老),发现一些有趣的和值得注意的地方,在此作个记录. 返回值过载 不能用返回值对函数进行overload,因为有可能调用方并不关心返回值,这就造成了