N年前学习C语言开始,就被老师教导,要记得包含头文件。自己也养成了二话不说就#include的习惯。从来没有静下信来想想,C语言必需要有头文件吗?头文件到底起到什么的作用。 最近一段时间做了一些静态库和动态库相关的东西,一些内容在上一篇博文中...
gdb是the GNU Debugger的简称。它是一款UNIX平台的调试器(debugger),可用于为C, C++, Objective-C, Java, Fortran等程序debug。 在gdb中,你可以通过设置断点(break point)来控制程序运行的进度,并查看断点时的变量和函数调用状况,从而发现可能的...
今天的问题很有趣,C的表达式 x == x,何时为假呢?即下面的代码: if (x == x) { printf("Equaln"); } else { printf("Not equaln"); } 什么时候输出为”Not equal”呢?看上去很有趣吧。x与自己比较,怎么会不等呢?请大家想一...
1、故事起因于2016年11月15日的一个生产bug。业务场景是:归档一个表里边的数据到历史表里边,同是删除主表记录。 2、背景场景简化如下(数据库引擎InnoDb,数据隔离级别RR[REPEATABLE])-- 创建表test1CREATE TABLE test1 (id int(11) NOT NULL AU...
测试环境:Target: x86_64-linux-gnu gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2.1) 什么是泛型编程?为什么C++会有模板?这一切的一切都要从如何编写一个通用的加法函数说起。 很久很久以前 有一个人要编写一个通用的加法函数,...
前提 由于工作的原因,经常需要对海量数据进行处理,做的数据爬虫相关,动辄千万级别的数据,单表几十个G都是都是家常便饭。 主要开发语言是C#,数据库使用的是MySQL。 最常见的操作便是 select 读取数据,然后在C#中对数据进行处理, 完毕...
一.背景介绍: 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 二.实现步骤: 1.构造一棵哈...
C语言确实显得有些老旧。最近一版权威性的C语言还是1988年发布的;在接近30年的时间里,这个语言的作者一直都没有对它进行过更新,可见它有多过时了。现在,一说到必须有所了解的编程语言,大家都会想到Rust、Go或是Clojure,却很少有人会想到C语言。 ...
第一个示例,很简单,大多数人都会答对,熟悉的人可以跳过这个示例。public class B{private const string P = "千一网络";public virtual string F1(){return P;}public string F2(){return P;}}public class D : B{private const string P = "www.cf...
1:gcc中支持但不推荐使用的指令#pragma pack() :取消内存对齐访问#pragma pack(n) (n=1/2/4/8):按n字节对齐#pragma pack(2)struct mystruct1{int a;char b;short c;}struct mystruct2{int a;;double b;short c;}#pragma pack() 以上这部分内容就...
一维动态数组的创建,这个比较简单,直接上代码1 #define _CRT_SECURE_NO_DEPRECATE2 #include<stdio.h>3 #include<stdlib.h>4 void createOneDimensionalVector(){5 int n, i;6 int *arr;7 sc...
这个问题大致是这样的,本来试图写一个产生低8位为1的掩码的语句: uint32_t mask = ~((uint8_t)0); ,结果发现算出的掩码是 0xffffffff 显然不符合预期,于是折腾检查了一番,写出对比程序如下:#include <stdint.h>#include <iostream>u...
之前没有接触过 c++,不过听说 c++ 的指针很坑,直到最近在用 QT / C++ 写一个 Linux Deepin 系统上检测网络流量和网速的小程序时,发现 c++ 的指针用起来真的特别蛋疼。 不过好在花了几个小时最终还是明白了指针的用法。 有一段代码的原型大概是...
最近项目代码需要从mips平台移植到x86平台,这是公司产品第一次采用x86平台。之前项目很紧,所以很多代码都没有考虑移植性问题,因此移植的时候遇到了不少问题。前几天才解决了位序(也叫比特序,与字节序不同)问题,今天又遇到了一个比较隐蔽的C语言...
为什么要有接口? 接口就是一个程序与其它程序交流的窗口。就比如有一个电视机,我并不需要知道它是怎样工作的,我只要知道按电源键就可以开启电视,按节目加(+)减(-)可以切换电视频道就可以了。 Java程序员都知道Java中有interface可以实现对外...
一、C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多...
首先*p++等价于*(p++)。至于为什么会等价呢?根据c语言的优先级。*与++的优先级同处在第二级别上。他们的优先级是一样的,又因为处在第二级别的优先级运算符是结合方向是从右到左,所以当出现*p++这样的表达式的时候,根据优先级别相同,并且结合方向是...
一.《Google C++ 编程风格指南》里的观点 公司在推行编码规范,领导提议基本上使用《Google C++ 编程风格指南》。其中《Google C++ 编程风格指南》对于头文件的包含顺序是这样的: Names and Order of Includes link ▽Use standard order f...
一、有些事情难以回头 开篇我先表明自己的立场:同时使用 .Net 和 JAVA,但更加偏爱.Net。原因很简单: 1、.Net语言更具开放性,从开源协议和规范可以看出; 2、语言更具优势严谨; 3、开发工具 VS 更具生产力; 然而 1、Java,C# 的职...
在分析病毒机理的基础上,用C语言写了一个小病毒作为实例,用TURBOC2.0实现. [Abstract] This paper introduce the charateristic of the computer virus,then show a simple example written by TURBOC2.0. 一、什么是病毒 恶意软件可能是第一...