单片机C语言代码优化方法减小生成的代码长度
对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一,一般是优化了代码的尺寸,就会带来执行时间的增加,如果优化了程序的执行速度,通常会带来代码增加的副作用,很难鱼与熊掌兼得,只能在设计时掌握一个平衡点。
对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一,一般是优化了代码的尺寸,就会带来执行时间的增加,如果优化了程序的执行速度,通常会带来代码增加的副作用,很难鱼与熊掌兼得,只能在设计时掌握一个平衡点。
在html文档开头加入doctype声明即可
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
注册表下 HKEY_CLASSES_ROOT\Directory\Background\shell
添加自命名项如:cyzcmd
设置默认值为想菜单显示的字符串如: 打开cmd并跳转至本目录
在cyzcmd项下添加项command
并设置command项默认值为想执行的命令:如cmd.exe
此为自定义右键空白处显示菜单项的方法。
如想定义右键选中文件夹时显示菜单项只需在HKEY_CLASSES_ROOT\Directory\shell下,按如上方法设置即可。
以管理员身份运行
net stop mysql
然后cd转到mysql安装目录下bin目录
执行
mysqld-nt.exe –skip-grant-tables
或者
mysqld.exe –skip-grant-tables
然后新开命令窗口,进入mysql,这时不需要密码
update mysql.user set password=password(“new_password”) where user=”root”;
flush privileges;
为root设置新密码为new_password
关掉mysqld.exe或mysqld-nt.exe进程,重新开启mysql服务
net start mysql
现在就可以以新密码登录mysql了
这篇文章并不能帮你在httpd.conf中使用中文,
我的解决方法是用win7中的mklink /J link 中文路径 的方法创建一个符号链接 ,在httpd.conf中还是使用英文,只是可以不改文件名。
XP中可以下载一个junction.exe命令行工具达到同样的效果(未测)
试着修改Discuz!的默认主题,模板位置很好找,在/template/下的default就是Discuz!的默认主题,复制default改名为自己定义的主题名。
主题目录下有个discuz_style_default.xml的文件,这个应该是描述主题信息的,把default改成自己的,里面的内容就看着改了改。
在Discuz!后台->界面->风格管理已经能看到自己的主题,右面有个安装,然后就出现了这个问题 “数据类型错误,请返回”
很明显是xml的问题,因为我别的都没动。Google搜了一下,有说是PHP.INI 的 zend.ze1_compatibility_mode 修改为 OFF的,有说是检查xml 数据的权限,是否为可读的。
上传一个test.php 里面写<?php echo ini_get(‘zend.ze1_compatibility_mode’);?>,输出0,就证明不是配置的问题。我的文件权限一向可读写,而且全部是从ftp上传的,所以第二项基本排除。
于是开始查看关于导入模板这块的源代码,在/source/function/function_importdata.php中第36行import_styles函数中,有两处调用getimportdata,而参数是固定的getimportdata(‘Discuz! Style’),在/source/function/function_admincp.php中找到getimportdata函数发现他会将第一个参数也就是’Discuz! Style’与xml文件中id为Title的item进行比较,如果不同就会抛出这个错误”数据类型错误,请返回”。
解决方法就是在模板目录下将discuz_style_*.xml中id为Title的item的文本节点的值改为Discuz! Style,其实默认就是这个,不动他就不会出这个错了。
无需引入其它库文件。
大概TCPDF就是php中处理pdf最权威的库了,找到这个可惜不会用,我只找到如何创建和添加页的方法,没有找到如何修改已经添加内容的方法,TCPDF那个类我只大略翻了翻,英文不太懂所以没找到如何达到修改pdf内文本的方法。
用UltraEdit以16进制打开一个需要动态修改的pdf文件,发现除了一些看不懂的乱码,还有一些貌似是控制文档格式的纯文本,而要修改的链接也是以纯文本方式出现的。
第一步:用str_replace,preg_replace等等文本处理函数直接修改链接。
现在等于是可以直接控制类似HTML的<a href=”URL”>Title</a>中的URL部分。我猜pdf通过格式控制符描述链接显示的位置,所以以纯文本标注链接。
然后除了一些格式控制符之外就是一些以stream\n开头以\nendstream结尾的二进制码。
尝试用gzinflate解码之,失败。
第二步:以gzuncompress解码之,成功。
得到的依然是二进制流,在UltraEdit中打开发现ASCII字符是直接显示的,只是每个字符中间加了一个\x00,
第三步:使用文本处理函数按自己的需求修改想要替换的内容之后在以gzcompress后的数据替换原来的数据即可。
我用的preg_replace_callback(“/stream\n(.+?)\nendstream/s”,’callbackbin’,$bin);
这样在callbackbin中直接返回stream\n编码好的数据\nendstream就可以了。
如果是很大的程序出现这种问题可以通过配置C:\WINDOWS\system32\inetsrv\fcgiext.ini增加ActivityTimeout=n(秒)来解决,但一般这种情况不常见,因为他的默认值就是70秒,很少会有超出的情况,我个人理解这个配置项就是激活php-cgi.exe所用时间的限制。
如果是很小的程序(比如phpinfo())也出现这样的错误提示,很有可能是php.ini的配置错误,比如找不到某个扩展dll,php是以fastcgi的权限执行程序的,而fastcgi一般是system(系统服务)继承自iis权限,而系统服务无法与窗口交互,而php找不到模块会弹出一个窗口,这样标准输出就卡住了,必须等待点击弹出窗口上的确定,然后fastcgi就一直等待,直到到达ActivityTimeout设置的限定时间,然后输出这个错误。
英文很差,以上纯个人猜测,如有谬误,欢迎指正,不胜感激。