自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (6)
  • 论坛 (57)
  • 收藏
  • 关注

原创 Android 4.0使用Kotlin调用C语言以及汇编语言

如今,Google早已将Kotlin编程语言作为了头等语言(first-class programming language)用于Android开发中,并且在Android Studio中获得了非常全面的支持。与此同时,我们看到Google从Android Studio 3.0开始就已经支持了Java 8,过了这么多年仍然不对Java语言进行升级就能看到Google当前对Java已经持有相当冷淡的态度了,预计Java 8将是Android Studio最高能支持的Java版本了(*^_^*)。或许这跟Ora

2020-08-01 16:04:56 892

原创 我的GitHub文集

服务器相关云服务器搭建配置以及服务器开发相关客户端编程技术相关如何用Android Studio创建一个C语言项目并学习开发C语言和汇编语言我收藏的Android开发技术文集Android中使用Objective-C加GNUstep如何用Android Studio创建一个C语言项目并学习开发C语言和汇编语言在Android Studio 3.0中使用C语言以及汇...

2019-04-18 16:19:43 506

原创 在Android Studio 3.0中使用C语言以及汇编语言

从Android Studio 2.2起,我们可以直接通过CMake在Android Studio中写C源代码以及汇编代码,而不需要通过NDK编译工具链生成好.so文件后再导入到工程中。而到了Android 3.0,使用C代码就更方便了,我们通过工程向导设置使用C语言之后,向导会自动建立一个完整的利用C++语言JNI的工程,我们只要把默认的那个恶心的cpp源文件修改为C源文件即可。下面我将详细列出直接通过Android Studio 3.0来编写C代码和汇编代码的步骤。对于其中的细节,如果各位有条件的话可

2017-10-28 00:38:23 9223

原创 Android Studio2.3 如何设置提示快速注释文档

在大部分现代化集成开发环境中都有代码智能感知以及快速显示当前函数或类型的注释文档化功能。不过在Android Studio中默认没有开启提示快速注释功能,下面我们就教给大家如何设置。

2017-04-25 16:47:50 2109

原创 Swift 3.0与C语言指针类型的桥接

Swift编程语言是一门灵活、简洁、安全而又强大的编程语言。其简洁性与安全性从它语法设计上就能看出。而它的高效性从它可以提供针对硬件底层进行编程的特性就能看出。尤其是从Swift 2.x中,其指针类型的使用变得更加灵活,甚至可以直接将一个整数作为地址,使得单纯通过Swift本身即可访问MMR寄存器。不过本博文将描述它另一个非常棒的特性——即与C API几乎完美的兼容!

2017-02-03 14:32:30 2236 5

原创 Swift 3.0中C语言指针类型在Swift编程语言中如何操作

Swift 3.0在2.0基础上做了许多改动,其中之一就是与C API的兼容性上。这里我将主要讲解一下C语言的指针与Swift编程语言的桥接在Swift 3.0中改成啥样了。

2016-12-04 20:00:30 4819

原创 关于Swift3.0中的type(of:)函数

其实Apple在Swift 2.x的时候就引入了typeof函数,用于获取某一对象的元类型。在Swift 3.0中,由于反射机制大幅度修改,Mirror现在也用不了了,所以type(of:)这个函数是为数不多的关于Swift中的反射接口。

2016-12-01 21:44:17 5639

原创 闲谈Objective-C编程语言(内含不包含任何框架的Objective-C代码)

从2008年起,由于Apple开放了App Store,iOS开发热浪席卷全球,Objective-C编程语言也似乎一夜之间成为了各个程序猿家喻户晓的编程语言了。其实Objective-C很早就诞生了,它早先由Brad Cox和他妻子Tom Love两人一起开发出来的,其目标就是基于C语言打造出一款拥有SmallTalk消息机制、动态类型的面向对象的编程语言。这个时间比Bjarne Stroustrup开发出第一版C++的时间还要早2年。

2016-11-28 17:24:05 2909

原创 使用Objective-C实现自定义的RunLoop

我们知道,由Apple主推的伴随Objective-C的运行时库——Foundation,其核心部分就是NSRunLoop类了。Foundation库将多线程封装得特别好,我们只需通过NSObject的performSelector:onThread:withObject:waitUntilDone:方法即可将一条消息分发到指定的一个线程上执行;通过使用performSelector:withObject:afterDelay:即可将指定的消息延迟指定的时间后发送给消息接收者之行。

2016-11-22 15:02:42 2142

原创 使用C11的原子操作来实现线性单链表操作

随着多核处理器的逐步普及,各种对于多核多线程并行计算的算法也得到了深入研究。而在高性能并行计算方面,许多处理器引入了原子操作以便同步多核多线程可共享的资源。在多核多线程环境中,要对某一个共享资源进行同步必须用到原子操作,即便是像mutex、semaphore等传统的锁机制也是需要通过原子操作来实现。为了加速对共享资源的访问操作,许多无锁的算法(lock-free或non-blocking)被设计出来,通过消除锁来避免锁带来的系统开销。

2016-11-14 16:44:48 2643 4

原创 使用纯C语言通过Direct3D 11的Compute Shader做通用目的计算

从2010年起,基于GPGPU的通用目的计算随着OpenCL以及CUDA的大热而变得异常火热。而基于GPU的通用目的计算,其实从其本质上上来说就是通过GPU内部的Compute Shader来完成的。而OpenCL以及CUDA则是将主机端与GPU端的通信接口做了更为标准化的统一。而在最近这几年中,除了OpenCL与CUDA之外,还有像微软发布的C++ AMP,还有最近被融合到OpenMP的OpenACC等工具,这些都是利用GPU的大规模数据级并行计算来做数据级密集通用目的计算的。而现在在高性能计算领域,用

2016-10-30 21:22:21 3460

原创 使用纯C语言开发简单的Direct3D 12应用

由于微软官方给出的D3D12的demo都经过C++层层封装,即便是很简单的画三角形的程序都显得比较复杂。因此笔者这里就用纯C语言来改写画三角形的简单D3D12应用程序。这里面不包含任何已被废弃的D3DX的库,所以可以直接拿来使用。

2016-10-26 21:58:47 6251

原创 Java7与Java8新增语法特性

Java 7在语言语法上主要新增以下语法特性:

2016-09-27 22:02:14 3334

原创 macOS上如何通过iCloud Drive便利地同步文稿

在macOS、iOS上,使用iCloud能方便地同步各类文件。而在Mac上,我们通过iCloud Drive还能把iCloud当网盘使用。使用方法非常简单:

2016-09-27 13:42:09 8971

原创 Swift 3.0中的函数签名与函数引用

在Apple官方的《The Swift Programming Language》中提到了Swift中函数的定义以及如何调用的方式,并且也大概提到了函数引用的方式以及如何通过一个函数引用对象进行函数间接调用。不过,在此文中并未对函数符号的识别做详细描述,这样当我们用一个函数引用去指向一组重载的函数中的某一个时就可能会引发一些问题。这里我将为大家详细描述Swift中函数签名以及如何在一组重载的函数集中找到我们想要的那个函数。

2016-09-25 23:49:00 4495 4

原创 Metal API随着iOS 10与macOS 10.12新引入的Tessellation特性

Tessellation——中文一般译作“细分曲面”,一般用于将由少量顶点构成的面生成细节度更高的面。这其中的原理是将一个三角形或四边形,由GPU根据我们编程的控制点生成规则,自动生成更多的顶点,然后将这些顶点根据一定规则生成更多的三角形。这么一来,我们可以在3D游戏中在远处的敌人使用低模也能做出精细度较高的模型出来了,而且也省顶点数据传输带宽。

2016-09-23 22:24:20 4901 2

原创 Swift中使用C11标准的原子操作

当前Swift 3.0中还没有正式引入基本类型相对应的原子类型。而在macOS以及iOS下,我们可以用系统自带的OSAtomic API进行原子操作处理。但这组API只能在Apple自家平台上使用,我们无法在Linux/FreeBSD中使用,所以我这边封装了顺应C11标准的一组原子类型与原子操作提供给Swift编程语言。

2016-09-21 14:50:17 3417 2

原创 Ubuntu系统下通过Clang编译器编写Objective-C

Objective-C作为Apple的first-class编程语言,在很长一段时间内都得到大量开发者的追捧。其中,Objective-C对C语言的完全兼容、灵活性以及OOP特性,使得它成为一门十分优秀,且平衡度很高的编程语言。在我所有用过的编程语言中,Objective-C是最最适合用于开发驱动以及应用层程序的编程语言,它比C++轻便地多,但功能上又比C++更强;而在完美兼容C语言的基础上增加了...

2016-09-11 23:39:16 4312

原创 Objective-C如何使自定义对象类作为NSDictionary的key

我们通常会通过Objective-C中Foundation库的NSDictionary与NSMutableDictionary来存放键值对。然而并不是所有Objective-C类都能作为NSDictionary的key来用的,这里将介绍如何将我们自己定义的Objective-C类可作为NSDictionary的键。

2016-09-11 22:22:51 3624

原创 向量化矩阵转置算法

在不少高性能计算中,矩阵转置扮演了一个使用比较频繁的角色。因此如果在某个处理过程中,矩阵转置占的比重比较大,且算法没设计好的话就可能会成为该处理过程的计算瓶颈。这里我将介绍向量化矩阵转置的算法过程。

2016-08-22 17:55:52 4103

原创 Swift中使用C API时传递指针注意事项

Swift总的来说是一门比较容易编写的静态编译且略带一些动态特性的编程语言。由于Swift在2014年才刚诞生,因此当前在语法上修改的幅度比较大,尤其是从Swift 1.0到Swift 2.0;Swift 2.0到Swift 3.0。然而,此编程语言也逐步走入正轨,当前所有的改动都准对编程语言的稳定性、语法体系的完备性、API命名规则的一致性等问题进行展开,并且Swift从一开始就在保留对Objective-C以及C语言的相兼容性。我们在Swift中可以使用大量C语言形式的系统API,这些API中有不少包含

2016-08-09 22:16:55 2584

原创 噗嗤~

噗嗤……Safari跟IE比起来先进太多了。这些杂七杂八的玩意儿不支持又咋的?至少Safari不需要那些乱七八糟的插件,而且又很安全,速度也很快。支持太多东西只会让浏览器运行变慢。所以Apple也不想跟这些慢吞吞的东西扯上关系~...

2015-07-05 13:33:46 199

原创 利用双核机制优化素数生成

以下代码在基于如下环境中编写和测试的:编译器:Apple LLVM2.0(兼容GNU99),Objective-C操作系统:Mac OS X Snow Leopard生成程序:64位测试环境:Mac Mini,CPU:2.00GHz,Intel Core2 Duo P7350; 内存:1GB DDR3;L2 Cache:3MB

2011-05-18 23:42:00 3590 1

原创 AT&T汇编针对x86指令集格式

目前很多开源基于x86处理器环境的C/C++,Objective-C/C++编译器所带的汇编器使用AT&T格式。AT&T汇编针对x86指令集与其它处理器(比如ARM、Blackfin等)有所不同,它与Intel自定义的汇编格式有比较大的偏差。GCC的汇编器能支持Intel语法特性,可以参考我前面的博文来获悉如何使用。不过对于最新的LLVM2.0,又开始弃用Intel语法特性了。因此不管怎么说了解A

2011-04-14 00:03:00 9125 4

翻译 Intel系统编程指南第十一章——11.11 存储器类型范围寄存器(MTRR)

Intel系统编程指南第十一章——11.11 存储器类型范围寄存器(MTRR)

2011-03-26 15:02:00 5645

原创 通过Quartz+Core Image读取JPEG图像的二进制位图以及将二进制位图做成图像

通过Quartz+Core Image读取JPEG图像的二进制位图

2011-02-19 22:54:00 1755

原创 Intel x87 FPU的使用基础

Intel x87 FPU专门用于执行标量浮点计算,可以对单精度浮点(32位)、双精度浮点(64位)以及扩展双精度浮点(80位)进行计算,并顺从IEEE754标准。

2011-02-15 21:28:00 9385

翻译 Intel系统编程指南第十一章——11.5 Cache控制

Intel系统编程指南第十一章——11.5 Cache控制

2011-02-03 00:31:00 5490

原创 LLVM/GCC中如何使用Intel格式的汇编

在GCC以及LLVM编译器中,默认情况下,如果使用汇编或在C/C++,Objective C/C++中内嵌汇编的话都是AT&T格式。

2011-01-24 23:19:00 4653 1

原创 Apple's OpenCL——再谈Local Memory

在OpenCL中,用__local(或local)修饰的变量会被存放在一个计算单元(Compute Unit)的共享存储器区域中。对于nVidia的GPU,一个CU可以被映射为物理上的一块SM(Stream Multiprocessor);而对于AMD-ATi的GPU可以被映射为物理上的一块SIMD。不管是SM也好,SIMD也罢,它们都有一个在本计算单元中被所有线程(OpenCL中称为Work Item)所共享的共享存储器。因此,在一个计算单元内,可以通过local shared memory来同步此计算单

2011-01-23 15:21:00 7656 14

翻译 Intel系统编程指南第十一章——11.3 可用的cache方法

Intel系统编程指南第十一章——11.3 可用的cache方法

2011-01-23 00:01:00 2417

翻译 Intel系统编程指南第十一章——11.1 内部Cache、TLB和缓存

Intel系统编程指南第十一章——11.1 内部Cache、TLB和缓存

2011-01-14 00:27:00 4763

翻译 Intel系统编程指南第十一章——存储器Cache控制

Intel系统编程指南第十一章——存储器Cache控制

2011-01-13 23:59:00 2677

翻译 R700指令集架构参考手册第三章——控制流(CF)程序

R700指令集架构参考手册第三章——控制流程序

2011-01-12 22:51:00 1658

原创 OpenCL中亦要注意volatile的使用

在OpenCL或CUDA中,对全局共享变量的访问我们往往会忽略掉使用volatile,这在仅对其访问一次的时候不会有问题,但是对这个共享变量变量做第二次访问的话,那么它会被编译器优化,从而得到的一直是第一次被引用时的值。也就是说,其它线程对共享变量的修改,当前线程将不可见。

2011-01-11 23:41:00 2755 7

翻译 R700指令集架构参考手册第二章——2.6 数据共享

R700指令集架构参考手册第二章——2.6 数据共享

2011-01-03 23:41:00 1882

翻译 Intel系统编程指南第八章——8.10 空闲和阻塞情况的管理

Intel系统编程指南第八章——8.10 空闲和阻塞情况的管理

2010-12-29 21:04:00 6101

翻译 R700指令集架构参考手册第二章——2.5 程序状态

R700指令集架构参考手册第二章——2.5 程序状态

2010-12-28 23:52:00 1596

翻译 Intel系统编程指南第八章——8.9 对硬件多线程性能处理器的编程考虑

Intel系统编程指南第八章——8.9 对硬件多线程性能处理器的编程考虑

2010-12-25 13:40:00 2141

翻译 Intel系统编程指南第八章——8.8 多核架构

Intel系统编程指南第八章——8.8 多核架构

2010-12-24 10:12:00 2412

CPU Dasher源代码

一款在2012年9月就在App Store上线的作品。具体信息请参考:https://itunes.apple.com/cn/app/cpu-dasher/id561909183?l=en&mt=8 现在,将其源代码透露出来供大家参考学习。

2014-11-29

OpenCL的Objective-C接口

使用Objective-C对OpenCL接口的封装。请在Xcode 8或更高版本上进行编译构建。

2016-11-26

初窥OpenGL Shaders

简单的基于OpenGL 2.1的OpenGL Shading Languange的使用(基于macOS)

2016-10-28

用于Swift的顺从C11标准的原子操作

各位只需要将CLib4Swift.h、CLib4Swift.c以及SwiftAtomic.swift三个文件放入到自己项目工程中即可,然后还需要将"CLib4Swift.h"头文件include到你的brdige头文件中。 具体使用非常简单,直接看main.swift中的测试代码即可。

2016-09-25

MetalTessellation——基于macOS 10.12

基于macOS 10.12中Metal API新引入的Tessellation新特性。整个工程必须至少使用Xcode 8才能使用,并且请确保您的Mac已经升级到了macOS 10.12 Sierra

2016-09-24

这确实是一个SB资源很SB

这确实是一个SB资源很SB这确实是一个SB资源很SB这确实是一个SB资源很SB

2007-12-02

当我们谈论C11标准时,我们在谈论什么

发表于 2017-08-17 最后回复 2020-04-14

zenny_chen的留言板

发表于 2020-01-02 最后回复 2020-01-02

举一个C语言能做,C++无法做到的例子,呵呵……

发表于 2011-07-04 最后回复 2019-02-05

黑客与C语言

发表于 2017-06-24 最后回复 2017-06-30

const与typedef的中高级使用

发表于 2006-09-18 最后回复 2017-06-15

将if-else语句转为 ? : 三目条件表达式

发表于 2017-05-30 最后回复 2017-06-06

给大家整个题目:如何用C来写一个返回类型为int(*)[3],参数为(int, int)的Block

发表于 2016-08-19 最后回复 2016-08-23

漫谈Objective-C在语法上的改进

发表于 2016-03-25 最后回复 2016-03-28

支持Watch!CPU Dasher64 3.0版本即将出炉!

发表于 2016-02-02 最后回复 2016-03-24

OpenCL如何获取最小线程并行粒度

发表于 2013-08-14 最后回复 2013-09-03

如何实现重复调用一个函数,非循环

发表于 2011-09-02 最后回复 2013-07-11

献给Mac/iPhone开发初学者——Objective-C与objective-C++的混用

发表于 2009-06-22 最后回复 2012-11-23

请问有谁知道ADS1.2下编译器使指定函数或每个函数都能32字节对齐?

发表于 2009-10-15 最后回复 2012-11-23

RVCT3.x编出来的库能否在ADS1.2下连接?

发表于 2009-11-03 最后回复 2012-11-23

请问如何在JTextPane中将某些字符串显示为超链接

发表于 2007-08-14 最后回复 2012-03-23

呵呵,有谁知道C1X标准的?

发表于 2010-10-16 最后回复 2012-03-21

请教一个更快的YUV420图像缩放算法

发表于 2008-12-10 最后回复 2012-03-12

关于int x= x;和int x[x];的问题

发表于 2011-12-23 最后回复 2011-12-25

各位注意了,cesc2011此人已疯

发表于 2011-09-02 最后回复 2011-09-02

给大家弄道数值方面的趣味题,顺便升星散分,呵呵呵……

发表于 2010-08-20 最后回复 2011-07-04

我靠!好久没讨论C++09了,弄个λ表达式谈谈

发表于 2009-05-12 最后回复 2011-06-18

CSDN真垃圾,把偶头像搞没了

发表于 2010-04-25 最后回复 2010-07-01

CUDA中有没有针对PTX ISA的instrinsic function?

发表于 2010-06-26 最后回复 2010-06-26

关于C++0x的问卷调查,呵呵

发表于 2010-05-03 最后回复 2010-06-09

什么是Syntactic Sugar?欢迎加入Syntactic Sugar

发表于 2009-09-12 最后回复 2010-05-25

关于大端(Big Endian)模式下的struct字节存储顺序(建议在大端模式机器下有过实际开发经验的进)

发表于 2008-03-02 最后回复 2010-02-01

关于YUV420图像的缩放

发表于 2008-12-10 最后回复 2009-01-01

如何在一个Windows窗口中创建按钮等控件(不使用MFC,直接利用WinAPI)

发表于 2008-10-28 最后回复 2008-10-29

如何在Eclpse中允许断言?

发表于 2007-12-12 最后回复 2007-12-17

双核协作完成搜索

发表于 2007-11-28 最后回复 2007-12-01

如何用子类的对象调用已被覆盖的父类函数,两者参数不同

发表于 2007-11-22 最后回复 2007-11-23

请问如何用JSP来加载Applet?

发表于 2007-08-09 最后回复 2007-08-10

请问如何在HTML文本域中将特定文本显示为链接?

发表于 2007-08-08 最后回复 2007-08-09

const/volatile修饰标识符的进一步论证

发表于 2007-05-12 最后回复 2007-07-09

关于JDK5的范型编程

发表于 2007-05-29 最后回复 2007-05-31

对UltraEdit增加新的语法高亮

发表于 2007-05-13 最后回复 2007-05-16

对UltraEdit增加新的语法高亮

发表于 2007-05-13 最后回复 2007-05-14

对UltraEdit增加新的语法高亮

发表于 2007-05-13 最后回复 2007-05-14

当用户用鼠标双击一个文本文件时,自动删除该文件

发表于 2007-05-11 最后回复 2007-05-11

HID 类USB客户模式写设备问题

发表于 2006-11-08 最后回复 2007-03-24

空空如也

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

TA关注的人 TA的粉丝

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