Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Object-C 中变量的作用域

Object-C 中变量的作用域

iOS中,修饰变量的关键字有四个,分别是:1 @public被这个关键字修饰的变量是完全开放的,只要有这类的对象存在,就可以访问到这个变量。2 @protected被这个关键字修饰的变量是受保护的,只有在声明变量的这个类中和它的子类中,可以访问。3 @private被这个关键字修饰的变量是私有的,只能在声明这个变量的类中使用,子类也不能使用。4 @package这个关键字比较难理解,大致意思是被修饰的变量是封装的,在本框架内可以自由使用,效果和@publi...
Object-C中编写省略参数的多参函数

Object-C中编写省略参数的多参函数

在Object-C中,我们经常会遇到一类参数数量不定的函数,如NSLog(NSString *format, ...)。像这类的函数时如何实现的呢?这篇博客将给你答案。引语:在Object-C中,我们会遇到很多像NSLog这样的函数,其中参数的个数不确定,由程序员自由控制,在初始化数组,字典等方面应用广泛,那么,这类的函数是如何实现的呢?我们怎么编写我们自己的省略参数的函数呢?当然,这不是唯一的多参函数的处理方法,你也可以通过一个字典或者数组传递参数。但C...
C/C++语言中变量作用域:局部变量,全局变量,文件级变量

C/C++语言中变量作用域:局部变量,全局变量,文件级变量

C/C++语言中的变量分为全局变量和局部变量。这种划分方式的依据是变量的可见范围或者叫做作用域。1 局部变量局部变量指的是定义在{}中的变量,其作用域也在这个范围内。虽然常见的局部变量都是定义在函数体内的,也完全可以人为的增加一对大括号来限定变量作用域。如下所示:void f(){float x = 0;{int a;}}别小看这个作用域问题,这对于C++的影响远比纯C要大。C语言中局部变量离开作用域时,编译器会插入一个POP 指令来清理变量占用的栈空间。...
写出完美的snprintf

写出完美的snprintf

平时公司的代码安全扫描会给出不安全代码的告警,其中会检查代码中间的strcpy和sprintf函数,而要求使用strncpy和snprintf。今天我们讨论一下怎样写出完美的snprintf。snprintf是一个在C99才被加入如标准的函数,原来的各个编译器都有自己的实现,至少.NET2003编译器还要是使用_snprintf这样的函数名称。而这些编译器间都有差异,而且Glibc库又有自己的不同的实现。查询一下snprintf的函数的MSDN说明。如下:...
Protobuf 在Ubuntu 14.04上的编译与使用

Protobuf 在Ubuntu 14.04上的编译与使用

摘要:Protobuf 在Ubuntu 14.04上的编译与使用前言一直知道Google开源的一个与语言无关的数据交换协议:protobuf。只知道是一种不同于json和XML的格式,还有就是性能特别的好(这在Java和C++的实现确实是!)最近闲下来看了下Google的Protobuf的相关东西,然而baidu出来的东西很多都过时了,我不得不花些时间来倒腾,于是就有了如下的内容。•下载源代码与准备工作$ sudo apt-get install...
使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

在 Linux 上开发 C/C++ 程序,或许你会直接(本机或远端)登入 Linux,打开编辑器写完代码后,就用 gcc/g++ 来编译,遇到要除错(debug)的时候,则会选择使用 gdb 来进行除错。现在,如果你刚好也很喜欢 Visual Studio,你可以不必改变习惯,用 Visual Studio 写程式、然后远端送到 Linux 上编译、甚至还能接上 gdb 来除错。这个对于开发像是嵌入式系统、或是 IoT 装置的程序等等就可以多多利用 Vis...
使用 UIStackView 构建动态的 iOS 布局

使用 UIStackView 构建动态的 iOS 布局

iOS上的视图布局向来都比较复杂。在iPad和不同尺寸的iPhone诞生之前,开发者习惯硬编码视图布局。随着不同尺寸的iOS设备出现,这种方式已然不可取。为了解决这个问题,Apple提供了AutoLayout,它利用基于约束的布局系统根据设备规格动态调整你的用户界面。AutoLayout解决了很多问题,但是它不易于掌握、不容易适应变化以及调整起来耗时耗力。举个例子,如果我想在两个控件中间添加另外一个,那么我必须重写很多约束来保证它正确的插入。那么我们能既简...
swift基本运算符

swift基本运算符

今天看到了swift运算符这一章节。看书的效率的确是非常慢啊,寒假已经放了一个月了,然而我才只看到了运算符。之前一直被一些烦心的事情所打搅直至昨天,昨晚想了一个晚上的事情,到后来衣服都没脱就睡着了。总的来说算是把很多事情都想明白了吧!今天算是正式快马加鞭开始看了。一些常见的运算符就不说了,这里只整理几种swift中独有的。一、空合运算符(Nil Coalescing Operator)形式:a??b,如果a包含值则解封,否则返回默认值b条件:a必须为opt...
C语言之指针基础概念

C语言之指针基础概念

今天就写一下关于C语言指针的一些感想吧。很多同学都搞不懂指针,我一开始也云里雾里没看懂指针,而且老师又把指针说得很难的样子。其实主要是把指针”*“的作用给弄混了,不用畏惧,细心点看就可以了。首先简介一下指针的概念好了。指针本身也是一个变量,只不过这个变量的值比较特殊,它不是常规的整型数或者浮点数,而是指向另一个变量地址的值。通过指针的值可以知道另一个变量的地址以及存在该地址中的具体数值(该数值可以是整型,浮点型,结构体,甚至也可以是...
Java多线程-CountDownLatch

Java多线程-CountDownLatch

简介一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,请考虑使用 CyclicBarrier。实例通过CountDownLat...
Java多线程-CyclicBarrier

Java多线程-CyclicBarrier

介绍一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier 支持一个可选的 Runnable 命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次...
Java多线程-Semaphore信号量使用

Java多线程-Semaphore信号量使用

介绍信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。概念Semaphore分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得。Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java并发库Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,...
<< 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 >>