自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sarkuya的编程园地

-- 炼志飞心砚香墨,冷暖春秋隐翠竹。

  • 博客(90)
  • 收藏
  • 关注

原创 C语言函数内存分配机制及函数栈帧详解

本文考查了系统为函数及其形参、局域变量分配内存的具体细节,解释了函数栈帧的含义及其特点,指出并分析了从函数中返回局域变量的指针的潜在风险,进而揭示函数栈帧的共享特性,最后对这些底层细节进行了归纳总结,为我们更好地掌握并高效使用C语言的指针打好基础。

2021-08-31 18:56:28 3472

原创 非常方便的Swift公历转为农历

Cocoa已有一套公历农历互换的算法,非常简单、实用。在Swift中又进行了特定的简化,更加方便。

2021-08-20 03:34:56 1152

原创 一个灵活通用的GNU makefile

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、自定义模块math二、主程序HelloMath三、主角makefile四、赏玩五、结语六、参考文献前言让我们通过编译一个简单的使用自己开发的模块的C语言程序来看看GNU make到底有多灵活。一、自定义模块math首先是头文件math.h:#ifndef math_h#define math_hint sum(int a, int b);#endif /* math_h */其实现math.c文件

2021-07-31 06:02:46 1428

原创 char远非仅仅是字符

char“不是”表示字符的数据类型,printf函数用它的内部转换机制骗过了我们。相反,char是管理内存的利器,是理解C语言指针与内存管理的最佳切入点。

2021-06-20 00:19:35 1047

原创 Manipulation of CSS Using JavaScript

目录1. How CSS Rules Applies2. styleSheets Property of document3. CSSStyleSheet4. CSSRuleList5. CSSRule6. CSSStyleDeclaration7. Iterate the Declared CSS Properties8. Modify CSS Rules Via JavaScript9. Compound CSS Rules10. Declared Style V

2020-10-12 02:44:34 350

原创 改变JupyterLab的启动路径

改变JupyterLab的启动路径在MacOSX下,JupyterLab的启动路径默认为’~’,即当前用户路径。我们准备将其启动路径改到/Volumes/MacData/Docs/Sarkuya/JupyterNotebooks下面。有2种方式可改变这个启动路径。1. 终端方式打开一个终端,输入并运行:cd /Volumes/MacData/Docs/Sarkuya/Jupyter...

2019-11-13 21:31:46 5380

原创 SQLite With Python Tutorial

SQLite With Pyhton Tutorial1. What’s SQLiteSQLite is a small database with high effeciency. When your application is under the developmet stage, SQLite is a handy tool for you. And SQLite is the com...

2019-10-08 00:23:17 406

原创 Canvas Grids 的简单实现

下面的代码在HTML Canvas中绘制了坐标轴及坐标格线Grids。<!DOCTYPE html><html> <head> <title>Canvas Grid</title> <meta charset="UTF-8"> <meta name="vi...

2019-04-20 11:27:54 1441

原创 简单但可多次重复使用的Ajax代码

定义一个名为"ajax"的单例对象的代码:var ajax = {};ajax.getHttpRequest = function() { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } else if (window.ActiveXObject) { return n...

2019-03-07 01:50:21 827

原创 计算三角形平面的的法线

Vector的叉乘,可算出法线设有按逆时针方向设置的一个三角形,var triangle = [ -0.5, -0.5, 0.0, // v0 0.5, -0.5, 0.0, // v1 0.0, 0.5, 0.0 // v2];先将这三个顶点转换为Vector:var v0 = new J3DIVector3(triangle[0], tria...

2018-05-20 01:32:16 12674

原创 在iOS中解析JSON

相对于冗长的XML, JSON格式的文件现在应用得愈加广泛。JSON虽然看似简单,但有些小陷阱须得注意。再加上解析时,必须双向考虑JSON文件与代码之间的衔接,这使得在iOS中解析JSON具有一定的难度。本文通过使用Swift语言,分4个步骤,从最简单的例子开始,最后讨论解决较为棘手的数组问题,在编码过程中具有一定的意义。## 最简单的JSON解析设有一个名

2018-01-07 05:09:04 1099

原创 JavaScript Map构造函数

var map1 = new Map();map1.set("Mike", "male");var map2 = new Map( [ [1, "number"], [2, "string"] ]);map2.get(1) // "number"第二种构造函数中,以二维数组的形式作为其参数,且内层数组元素数量为2,以对应键、值关系。

2017-03-22 21:09:59 2044

原创 Web SQL Database的异步机制

概述Web SQL Database是一个主要基于异步的实现。其原理是, 发起SQL语句命令后, 不待结果传回, 立即将程序流程控制权转交给下一语句。SQL语句执行完毕后, 单独线程再调用回调函数, 返回查询结果。什么意思呢? 看看下面的伪码:var id = executeSql("SELECT ID FROM tableA");executeSql("SELECT * FROM

2017-03-16 01:46:17 1817 1

原创 使用Swift快速查看Unicode编码

本文使用Swift来编写一小段代码,以快速查看Unicode编码。

2016-11-02 00:39:54 4527

原创 在Canvas中绘制圆角矩形

本文剖析了 Canvas API 中 arc 及 arcTo 函数的特征,并分别使用它们实现了 Canvas API 中所未提供的绘制圆角矩形的功能。

2015-11-12 04:04:41 48362 7

原创 为Visual Studio量身订制Freeglut

本文详细介绍了如何为免费的Visual Studio Community 2013编译并配置Freeglut。

2015-04-16 15:34:15 2351

原创 Freeglut Windows Programming on NetBeans

本文介绍了如何在Windows下基于Cygwin的NetBeans中配置Freeglut来开发OpenGL应用程序。

2015-04-14 00:50:29 1699

原创 在NetBeans配置Libxml2

: 1) 使用Cygwin下载安装Libxml2;2) 配置NetBeans的项目属性:c编译器的包含目录和链接器;3)代码:#include 等

2014-10-09 17:06:47 1169

原创 将NULL传递给C++字符串形参

C++的string的构造函数不允许传入NULL值,这给有时需要传入NULL的字符串实参增加了障碍。本文通过使用C++11的shared_ptr智能指针提供了解决此问题的一种思路。

2014-01-01 20:31:36 5012

原创 Windows使用技巧

1. 为文件夹添加“在新窗口中打开”的右键菜单在我们双击文件夹时,默认情况下,Windows将在同一窗口中打开相应文件夹。我们也可以将这种方式改变为在新窗口中打开文件夹。方法:点击资源管理器中的“工具” -> “文件夹选项” -> “常规” -> “浏览文件夹”,设为“在不同窗口中打开不同的文件夹”。但如果多数情况下需要默认情况,而在少数情况下需要在新窗口打开文件夹,通过上面的

2013-01-03 18:31:43 1158

原创 在NetBeans中使用代码模板及宏功能简化输入

NetBeans在键盘输入上有许多小秘密,本文描述了如何使用其“代码模板”及“宏”功能来简化输入。1. 代码模板工具 -> 选项 -> 编辑器 -> 代码模板,在“语言”下拉框中选“XML”,按“新建”按钮,在“新建代码模板”窗口的“缩写”框中输入“sect”,单击“确定”按钮。“新建代码模板”窗口关闭,并返回“选项”窗口。在该窗口“模板”列表中,已自动选择刚刚输入的“sect”项

2012-12-29 17:55:59 3002

原创 汇编语言的过程调用的几个问题

汇编语言的过程调用,如果需要传递参数,一般有2种方法,通过寄存器来“传递”,或是通过参数来传递。(还有将所有参数制成参数列表并压栈的传递方法,但较少用。)通过寄存器来“传递”,不是真正意义上的传递,其只不过是事先在几个有限的CPU寄存器中设置相应的值后,再调用过程,过程再直接读取这些寄存器的内容。可想而知,此法犹如C语言中的全局变量,极易感染。而如果通过参数来传递,又不得不面临手工维护堆栈

2012-11-09 04:33:18 1721

原创 测试iPhone Web应用的几种方式

开发iPhone应用,除了原生应用之外,iPhone Web应用也是一个很不错的选择。要测试iPhone Web应用,可以使用以下几种方法:方法:将应用发布到互联网上,使用iPhone访问互联网。缺点:速度慢,不能实时调试,产生流量费用。 方法:使用Safari来浏览本地的Web应用。操作:将本地硬盘上的Web应用首页拖到Safari中。缺点:Safari难以模拟iPhone设

2012-09-03 03:35:37 4415

原创 Web安全颜色

早期时,计算机最多只支持256种颜色。之后,将其中的216种颜色称为Web安全颜色,40种留作系统颜色使用。从颜色的十六进制表示方法来看,Web安全颜色很有规律,由3部分组成,每部分都有2个相同的数字,这些数字从00、33、66、99、CC、FF中选择。下表列出了所有的Web安全颜色。共分为6大部分,每部分均用子标题标出其十六进制表示方法中以何值开始。表中每3行的同一列属于同一颜色值,分别

2012-05-20 14:18:05 1860

原创 在NetBeans中使用正则表达式替换文本内容

现有一个HTML文档,其中多处的内容为:出于某个目的,我们的目标是要将上面的内容替换为:由于在文档的其他地方也出现了align="center"的内容,因此我们不能简单地在全局范围内直接使用style样式来替换。而如果一个个来替换,工作是比较大的。NetBeans的查找、替换支持基于Java的正则表达式(详见Java Class Pattern),可以较好地

2012-05-20 13:35:27 2775

原创 在Mac OS X中改变NetBeans的默认编码

中文版的NetBeans的默认编码是GB2312。如果您倾向于使用GB2312,则没有本文中所述的麻烦问题。但如果像笔者一样,喜欢使用UTF-8的编码,就有问题了。在NetBeans中创建项目后,我们可以通过菜单“文件” -> “项目属性”查看并修改项目的默认编码。但如果我们随意将一个不属于NetBeans任何项目的文档拖进NetBeans中编辑时,如果该文档的编码不是GB2312,NetBe

2012-05-03 19:22:47 4050

原创 为GLUT应用编写TGA图像加载程序

GLUT是学习OpenGL编程时一个很好的助手。但它缺乏相应的图像加载功能。这使得我们在学习与研究诸如纹理贴图等内容时,不免显得有些尴尬 —— 要么坚持使用GLUT而不得不忍受在内存中手工生成简单图像的窘境,要么放弃使用GLUT而转向使用Cocoa或MFC等庞大类库。如果选择了后者,看似解决了这个问题,但我们学习研究的方向恐怕会不知不觉地从OpenGL转向Cocoa或MFC了。并且,我们的Open

2012-04-27 11:39:53 3380 1

原创 揭秘OpenGL红宝书中棋盘生成程序

OpenGL红宝书中在内存中生成图像时,多次提到了一个生成黑白棋盘的例子。相关代码如下:#define checkImageWidth 64#define checkImageHeight 64GLubyte checkImage[checkImageWidth][checkImageHeight][3];......void makeCheckImage(void){

2012-04-23 04:30:56 1945

原创 使用CSS3实现树形控件

下面是一个使用HTML的ul标签制作的关于国家区划的组织结构图。中国北京 广东省广州市 韶关市 海南省海口市美兰区 龙华区 秀英区 琼山区 三亚市 安徽省合肥市 安庆市 United States of AmericaWashington Florida 我们的目标是,在保持最干净的HTML源码不变的情况下,只使用

2011-12-26 05:45:13 6492

原创 让DocBook的图像尺寸自动适合PDF及HTML

我们创建了一张图像,拟在HTML页面及PDF文档中显示。当图像太大时,由于PDF文档一般是A4纸,空间极其有限,可能无法完全显示全部图像。一种解决的方法是分别为HTML及PDF创建大小不同的图像,然后分别为HTML及PDF指定相应的图像。但这种方法使工作量倍增。DocBook的的width属性的含义与HTML中的width属性含义不同。对于,width及depth分别指定视口的宽与高,而c

2011-12-18 19:15:07 2170

原创 DocBook使用XIncludes指定图像路径的方法

设有一DocBook的文档如下:<book … xml:base="./">......在使用XIncludes导入chapter_overview.xml时,XSL处理器将在该文件的路径前添加xml.base,因此就成为“./chapter_overview.xml”,这表示chapter_overview.xml在元素所在文档的同一目录下。这是XInclud

2011-12-14 23:27:05 1397

原创 DocBook 5 快速起步教程

内容概要DocBook是一个写作、排版、出版的利器。本文介绍如何在Mac OS X系统中安装DocBook 5,并使用它来撰写一本简单的书。最后,实现自动生成HTML及PDF文档的目标。DocBook 5包含了多个版本。目前正式发行版本是V5.0。因此,本文的DocBook 5特指DocBook V5.0版本。本文知识要点:使用Catalog部署DocBook DocBook实

2011-10-09 08:48:38 13420 4

原创 C++数组作为函数参数的几个问题

本文需要解决C++中关于数组的2个问题:1. 数组作为函数参数,传值还是传址?2. 函数参数中的数组元素个数能否确定?先看下面的代码。 #include using namespace std;void testArrayArg(int a[]){ cout << endl; cout << "in func..." << endl; cout << "a

2011-06-19 12:43:00 19386 10

原创 Win32应用中如何使用MessageBox来显示数值型变量

开发C++应用时,有时需要跟踪某些变量值。使用MessageBox可方便地显示字符型的变量值。但对于数值型变量,如整数型与浮点型,则是一个问题。最初的思路: int a = 3;MessageBox(NULL, TEXT("") + a, TEXT("Test"), MB_OK); Java中,字符串+数值 = 字符串,但在C++中行不通。 Win32中的wsprint

2011-06-01 19:26:00 10581

原创 C++指针的动态转换

<br />您的一个老客户来找您,需要使用vector来管理众多具有继承关系的类。先有以下三个类。<br /><br /><br /> <br />       class Person {<br />       public:<br />              string name;<br />              Person() : name("Person") {}<br />       };<br /> <br />       class Male :  public Perso

2011-03-28 04:30:00 3037

原创 Mac OS X下NetBeans 7.0中文不上屏的解决方法

有时候NetBeans主界面中经常不能输入中文,现象为,虽可在系统中正常切换中文输入法,但输入时,输入法的屏选窗口出现在屏幕的左下角,但在NetBeans中只能输入相应的英文,不能输入中文。解决方法:打开Mac OS X的系统偏好设置,打开语言与文本,在“语言”标签中将列表框中的English一项拖至第一行,重启NetBeans即可。这种方法的副作用是,NetBeans的菜单将

2010-09-18 10:55:00 3077 2

原创 修改MySQL密码后导致不能再登录phpmyadmin的解决方法

<br />MySQL的超级用户名为root, 密码默认为空。修改此此用户密码后,将导致不能登录phpmyadmin. 错误信息为:<br />#1045 - Access denied for user 'root'@'localhost' (using password: YES)<br />意为需要密码来登录。但phpmyadmin却未提供一个用以输入用户名及密码的页面,因此无法登录phpmyadmin.<br />这是因为phpmyadmin使用了配置文件而不是表单的形式来登录。找到<br />XA

2010-08-28 16:11:00 3211

原创 在Xcode中使用GLUT开发OpenGL应用程序

Xcode是Mac OS X中自带的开发环境。GLUT提供了跨越平台的OpenGL实用工具。本文讲述如何在Xcode 3.2中使用GLUT来开发OpenGL应用程序。在Xcode的启动面板中,选Create a new Xcode project.在弹出的New Project窗口中,在左边选择Application,在右边选择Command Line Tool. 单击Choose...按

2010-08-18 01:38:00 18438 4

原创 激活雪豹上的LAMP

LAMP(即Linux + Apache + MySQL + PHP)是Linux环境下的梦幻组合,网络上有众多类似且易用的集成环境可供下载,如XAMPP、MAMP等。但雪豹用户无需另行下载安装,因为它自带了这个梦幻组合。默认情况下,雪豹的LAMP是关闭的,我们需要激活它。1. 激活Apache服务器打开“系统偏好设置”,单击“共享”,选择“Web共享”,雪豹将自动激活Apache服务器。在Safari地址栏中输入http://localhost或http://localhost/~可以看到这些地址可以访问

2010-08-14 19:12:00 2276

原创 在iMac中使用Boot Camp安装多分区的WinXP

垂涎于Mac OS X亮丽的界面以及性能极其稳定的基于UNIX的操作系统,终于狠下心来购买了一个iMac(MB952CH/A),从而结束了在虚拟机上运行雪豹的尴尬年代。正自我陶醉间,发现了另外的尴尬的问题:在线看电影及下载。在Windows中,这两项任务都托了迅雷的福,而迅雷的技

2010-08-07 18:28:00 6115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除