断言(assert)的用法

我一直以为 assert 仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert() 的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个 if 语句: if(假设成立) { 程序正常运行; } else { 报错&&终止程序!(避免由程序运行引起..

结构体大小的计算

用最简单的方法,通俗易懂的方法计算结构体大小。 结构体计算要遵循字节对齐原则。 结构体默认的字节对齐一般满足三个准则: 1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除; 2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding); 3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员..

SHELL 读取文件的每一行内容并输出

假设读取的文件为当期目录下的 test.txt 文件,内容如下: Google Runcodex Taobao 实例 1 [mycode4 type='bash'] #!/bin/bash while read line do echo $line done < test.txt [/mycode4] 执行输出结果为: Google Runcodex Taobao 实例 2 [mycode4 ty..

PHP 会话(Session)实现用户登陆功能

对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。 由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。 对于 Cookie 来说,..

C 语言中 static 的作用

在 C 语言中,static 的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加 static 前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是 a.c,另一个是 main.c。 下面是 a.c 的内容: a.c 文件代码 [mycode4 type='cpp'] char..

Scala method(方法) 和 functio(函数) 的区别

在我没有学习 scala 的时候,主要用 java 和 python 做日常工作开发,印象中,没有特别的刻意的去区分 method 和 function 的区别,这个关系,正如我们日常生活中,没有刻意的去区分质量和重量。但是,他们之间,的确是有所不同的,这些不同也是建立在他们之间有联系的基础之上! 如何定义 首先,还是引用英文原文来看看他们在定义上的区别和联系吧: A Function Type is (roughly) a ..

C 语言整数与字符串的相互转换

一、简述 C 语言中整数与字符串的相互转换,有广泛应用的拓展函数(非标准库),也可以自己尝试简单的实现。 二、整数转字符串 1、拓展函数 itoa itoa (表示 integer to alphanumeric)是把整型数转换成字符串的一个函数。 windows 环境下,在 <stdlib.h> 头文件中有: char* itoa(int value,char*string,int radix);..

什么是闭包?闭包的优缺点?

闭包(closure)是 JavasSript 的一大难点,也是它的特色。很多高级应用都要依靠闭包来实现。 1、变量作用域 要理解闭包,首先要理解 JavasSript 的特殊的变量作用域。 变量的作用域无非就两种:全局变量和局部变量。 JavasSript 语言的特别之处就在于:函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。 注意点:在函数内部声明变量的时候,一定要使用 var 命令。如果不用的话,..

shell 里的进程替换(Process Substitution)

bash 和 zsh 里都支持进程替换(Process Substitution) 写法为:(command) 比如: $ cat (cat) #把>(cat)当成临时文件,ls的结果重定向到这个文件,最后这个文件被cat 用进程替换将 std 和 err 输出分别定向: $ some_command > >(/bin/cmd_for_stdout) 2> >(/bin/cmd_for_std..

Python 汉诺塔

有三个立柱A、B、C。A柱上穿有大小不等的圆盘N个,较大的圆盘在下,较小的圆盘在上。要求把A柱上的圆盘全部移到C柱上,保持大盘在下、小盘在上的规律(可借助B柱)。每次移动只能把一个柱子最上面的圆盘移到另一个柱子的最上面。请输出移动过程。 解答 这是动态规划问题中的一种,用递归来实现较为简单方便。 对于“将moveSum个圆盘从from柱移动到to柱(借助by柱)”这个问题,我们可以通过以下三步实现: 将from柱最上面的moveS..

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

点我查看本站打赏源码!

忘记密码?

如何获取邀请码?

关闭