ynnynn.com
域名年龄: 15年4个月8天HTTP/1.1 200 OK 类型:text/html Content-Encoding: gzip 修改日期:2016年01月28日 14:14:12 接受单位:字节 网页标记:"1ea9331b9359d11:0" 动作:Accept-Encoding 服务器:Microsoft-IIS/7.5 访问时间:2016年10月28日 11:16:20 文件大小:138
影影视博热门视频收藏博客 QQ:345965997首页最新电影淘宝商城直接量(literal)与一句简单的const int a = 3;admin Post in C语言技术备忘,26十一月20120前些天在某个群里与一位群友讨论 “直接量(literal)” ,一开始我误认为它就是C语言中的常量,因为好几年不接触C语言,也可以说以前学C语言学的不够好。所以现对C语言中定义常量的语句: const int a = 3; 的概念已经不太清楚了。但事后请教了飘和7哥。从他们讲解中我发现其实 “直接量(literal)” 与C语言中的常量是有点区别的,它是C语言中的特殊常量,也就是在C语言中通常叫的字面量(字面常量),因为literal翻译是“文字的”,“字面的” 意思。它也类似于汇编语言中的立即数(立即值)。我之所有说它与常量是有区别的意思是,因为字面常量与常量是有点区别的。要理解它们的区别,我们得来看个程序:#include <stdio.h>int main() {const int a = 3;const int b = 3;int c = a;printf("%d\n", c);return EXIT_SUCCESS;}以上程序中。a和b是常量、两个3是字面常量、c是变量,虽然常量与字面常量都可以叫做常量,但其实它们除了名字区别外还有一个区别,就是上面的第一个3与第二个3是不同的。因为内存里可以看到两个3在不同的地址,至于为什么那就要走到汇编语言去理解了。因为刚说了字面量类似与汇编语言中的立即数,而立即数是和指令在一起的,2条相同长度的指令永远都是单条指令长度 * 2,没有办法能缩减的。这是图灵机执行的基础理论,当代计算机都是基于图灵执行模式的(也就是一条指令一条指令的顺序执行),而不能后一条指令的一部分位于前一条指令中,这是因为当代计算机的电路基础都是有穷状态机,如果某条指令的一部分位于另一条指令,这是不可预测状态,无法确定状态机的有穷型 。 换句话说,非有穷的状态机是不能确定到底要多少电路才能完成,所以第一个3与第二个3是不同的。那再回来字面量与常量的区别上。字面量,那就是上面程序的那两个3,因为都是不相同的原因。所以证明了字面量不可以被后续引用到,而a和b这两个常量是可以的。因为变量c就是引用了常量a的值,所以这个程序的结果就是常量a的值3,也就证明了常量与字面常量是不一样的。所以其实别的语言说的 “直接量(literal)” 只是C语言中的字面常量而已,而不是常量。我之所以明白这些道理在此要谢谢以上提到的两位朋友,在从开始我学C语言到现在(大概7年了吧~),对我一直以来的教导。PHP工厂模式admin Post in PHP技术备忘,Tags: PHP工厂模式14十月20120记得上次写单例模式时离现在已经有一段时间了,所以也有一段时间没写东西了。今天见放假,就写写工厂模式的好处吧~~,在很多程序中如果不使用设计模式来写程序的话维护管理会很不方便(这是我现看到我们公司的CMS系统所遇到的问题体会到的),并且显得很臃肿,或者就拿知名的帝国CMS来说,你打开/e/admin/ecmsinfo.php就会看到如下图代码:个人觉得这样的代码就是很臃肿了,不知道你觉得没。。。 而工厂模式通常用来返回符合类似接口但不相同的类的。如我最近在开发的多登录接口(新浪微博、QQ互联、QQ微博==),比较如下:一、非设计模式:function qqAuth() { QQ互联登录逻辑,在这我不写了! }function sinaWeiboAuth() { 新浪微博登录逻辑... }function qqWeiboAuth() { QQ微博登录逻辑... }调用时就会:switch(strtolower(trim($type))){case 'qq' : qqAuth(); break;case 'sinaweibo' : sinaWeiboAuth(); break;case 'qqweibo' : qqWeiboAuth(); break;}或是 if….===的方法来调用,很明显,如果接口很只有这么几个的话。问题还不大。要是有几十个。几百个呢?这个case…就会一直写下去。二、但用设计模式会如:class qqAuth{public function login() { QQ互联登录逻辑,在这我不写了! }}class sinaWeiboAuth{public function login() { 新浪微博登录逻辑... }}class qqWeiboAuth{public function login() { QQ微博登录逻辑... }}调用时就会:class authFactory{public static function Create($type){$type = strtolower(trim($type));$class = $type . 'Auth';if(class_exists($class)) {return new $class();}}}$auth = authFactory::Create($type);$auth->login();很明显,这种方法比上面的好。因为我就算添加接口时直接添加一个class就OK,不用管其它地方,有人可能也会想到函数也能这样做啊,如:$type = strtolower(trim($type));$function = $type . 'Auth';function_exists($function) && $function();这样即可。但这个问题就是用OOP编程与过程式编程的问题了~~具体哪个好自己衡量了!!!^-^ 好了。要睡了,最后还是那句。如果有牛人觉得我说法或想法有不对的地方,欢迎前来指教~~MYSQL存储引擎大致使用与忌用场合admin Post in MYSQL技术备忘,31八月20125存储引擎MYSQL版本事务锁粒度主要应用忌用MyiSAM全部不支持支持并发插入的表锁入SELECT、INSERT、高负载读写并重的场合MyISAM Merge全部不支持支持并发插入的表锁入分段归档、数据仓库许多全局查找Memory (HEAP)全部不支持表锁中间计算、静态数据查证大型数据集、持久性存储InnoDB全部支持支持MVCC的行级锁事务处理无Falcon6.0支持支持MVCC的行级锁事务处理无Archive4.1支持支持MVCC的行级锁日志记录、聚合分析需要随机读取、更新、删除CSV4.1不支持表锁日志记录、大规模加载外部数据需要随机读取、索引Blackhole4.1支持支持MVCC的行级锁日志记录或同步归档除非有特别目的,否则不适合任何场合Federated5.0N/AN/A分布式数据源除非有特别目的,否则不适合任何场合NDB Cluster5.0支持行级锁高可靠性大部分典型应用PBXT5.0支持支持MVCC的行级锁事务处理、日志记录需要聚集索引SolidDB5.0支持支持MVCC的行级锁事务处理无Maria6.X支持支持MVCC的行级锁替代My
© 2010 - 2020 网站综合信息查询 同IP网站查询 相关类似网站查询 网站备案查询网站地图 最新查询 最近更新 优秀网站 热门网站 全部网站 同IP查询 备案查询
2025-05-02 21:51, Process in 0.0086 second.