首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android点滴分享

    汇编学习(8) ,IO

    本篇介绍 本篇介绍下汇编中的和IO操作,其中IO操作包括控制台IO和文件IO 首先并不是汇编支持的,而是nasm 汇编器支持的,这个也容易想到,汇编本身是一套指令,而就是将若干指令替换成一个符号 而且对于多行的,可以指定参数的个数,%n表示第n个入参地址,如果内部需要用变量,变量名字前就需要用%% 做前缀,比如%%arg1,%%fmtint。 %% 就是告诉nasm每次调用就需要创建新的变量实例,这样就不会遇到变量重复定义的问题了。 mov eax,0x0 401155: e8 d6 fe ff ff call 401030 <printf@plt> 40115a: 48 8b 04 25 leave 401194: c3 ret 这样就可以看到被展开后的结果了,基本可以和把用指令替换对上。

    73620编辑于 2022-12-13
  • 来自专栏数据处理与编程实践

    VBA: 提高 VBA 性能的 8 个技巧

    可以采取以下8个措施来提高运行效率。 删除不必要的Select方法4 使用With语句读取对象属性5 使用 ranges 和 arrays6 使用 .Value2 而不是 .Text 或 .Value7 绕过剪贴板(复制和粘贴)8 这些功能可能会增加额外的开销并减慢的速度,尤其是正在修改许多单元格并触发大量屏幕更新和重新计算的情况下。 Select方法可以触发单元格事件,例如动画和条件格式,这会减慢的速度,因此删除不必要的Select方法可以显著加快的运行速度。 bd8a2b1e685c)

    5.9K30编辑于 2022-12-18
  • 来自专栏君赏技术博客

    【已解决】在 Xcode8运行新出的@available()方法

    setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever]; } 但是团队的其他的小伙伴还有依然使用 Xcode8进行开发的 ,这就导致了低版本的 Xcode8无法识别我写的代码,在编译的时候就包错误了。 UIScrollViewContentInsetAdjustmentNever]; } #endif 为什么判断是 #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_10_3 因为 Xcode8支持最后的系统是

    3.7K20发布于 2018-09-07
  • 来自专栏全栈程序员必看

    container_of定义作用_内核

    上工具 这时候,就用到了 linux 内核中提供的两个了 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #define container_of 用来在给定一个变量的结构体类型,和这个变量的某个成员的地址的条件下,计算出这个变量的地址。 off_set of flags = %ld\n", off_set); return 0; } 运行输出 off_set of name = 0 off_set of brightness = 8 of flags = 32 name 是结构体的第一个元素,所以它的偏移量是 0 brightness 的偏移量是前面元素的大小,即一个指针变量的大小,我使用的是 64 位的机器,所以一个指针大小为 8 字节,所以 brightness 的偏移量为 8 同理可求得 link 的偏移量为 16,flags 的偏移量为 32 container_of 实例解析 #include <stdio.h> #include

    1.6K10编辑于 2022-09-23
  • 来自专栏c++与qt学习

    #ifdef名和#ifndef

    #ifdef名: #include<iostream> #include<conio.h> using namespace std; #define dhy //定义名 int main() { #ifdef dhy //如果名定义了执行ifdef代码 cout << "你好,世界" << endl; #else //未定义名则会执行else后面的代码 cout << "再见,世界" << endl; #endif //dhy _getch(); return 0; } #ifndef名:与ifdef名类似且相反 #include<iostream> #include<conio.h > using namespace std; #define dhy //定义名 int main() { #ifndef dhy cout << "你好,世界" << endl; #else

    1K20发布于 2021-02-22
  • 来自专栏全栈程序员必看

    gtest列表_指定怎么用

    简介 总结gtest中的所有断言相关的。 gtest中,断言的可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。

    1.5K30编辑于 2022-11-10
  • 来自专栏c++与qt学习

    定义

    1.无参数的定义 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> / / 常量 //1.不重视作用域 //2.可以用undef卸载 //3.常量 没有数据类型 void test() { #define MAX 100 } int main() { test(); int a = MAX; printf("%d", a); return 0; } 说明: 2.带参数的定义(函数) #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> // 函数 //1.将短小,频繁使用的函数写成函数 //2.加括号保证运算完整性 // 函数 //1.将短小,频繁使用的函数写成函数 //2.加括号保证运算完整性 //3.优点:空间换时间 #define SUM(x,y) ((x)+(y)) void test() { int ret

    1.4K40发布于 2021-03-04
  • 来自专栏VBA 学习

    加载

    1、什么是加载 加载其实就是一个特殊一点的Excel带VBA程序的文件,最大特点就是不会显示出Excel表格的界面,只有在VBA编辑器里才能看到它的工程属性并编辑它的VBA代码。 2、创建和使用 要创建加载非常的简单,编辑一个正常的带VBA程序的文件,然后另存为: ? 选择加载即可,选择另存的位置后,生成的文件后缀名就是.xlam的文件。 使用的时候,只要双击打开文件就可以了,但是如果要运行加载里的程序,一般都要配合自定义加载菜单或者是Ribbon菜单,在07版本之后一般都是使用Ribbon菜单,Ribbon菜单的制作建议看ExcelHome 论坛上的这篇帖子,比较详细: http://club.excelhome.net/thread-898848-1-1.html 另外,如果制作的加载希望每次打开Excel都自动打开的话,可以设置自动加载 打开Excel加载项后,浏览找到加载宏文件所在位置,确定后就可以了,以后不管打开什么Excel文件都会自动打开这种加载,只要保证加载的保存位置不要改变就可以。

    1.6K20发布于 2020-07-28
  • 来自专栏增长技术

    定义

    对象 #define M_PI 3.1415926535 double r = 1.0; double circlePerimeter = 2 * M_PI * r; // => double circlePerimeter = 2 * 3.1415926535 * r ## 函数 #define FUNC(x) x NSLog(@"Hello %@", FUNC("world"); // => NSLog(@"Hello

    1.3K10发布于 2018-09-06
  • 来自专栏C语言入门到精通

    C++定义 | 定义求面积

    C++定义 学过C语言的读者,对定义应该不陌生,同样在C++中,也可以用定义命令将一个指定的标识符来代表一个字符串,定义的作用一般是用一个短的名字代表一个长的字符串。 一般形式为: #define 标识符 字符串 定义PI的符号常量: #define PI 3.14 在C++中还可以用#define命令定义带参数的定义,一般形式为: #define 名(参数表) 中基本上已不再用#define 命令定义了,定义主要用于条件编译中。 经典案例:C++定义求面积,要求可以手动输入长和宽。     cout<<"面积是:"<<area;//输出面积   return 0; //返回值为0  } 执行本程序之后,会输出: 请输入长和宽:5 8 面积是:40 -----------------

    2.2K2828发布于 2020-12-01
  • 来自专栏Java技术栈

    Java中的变量,替换详解。

    首先来理解下变量: Java中,一个用final定义的变量,不管它是类型的变量,只要用final定义了并同时指定了初始值,并且这个初始值是在编译时就被确定下来的,那么这个final变量就是一个变量。 编译器会把程序所有用到该变量的地方直接替换成该变量的值,也就是说编译器能对变量进行替换。 final String a = "hello"; final String b = a; final String c = getHello(); a在编译期间就能确定下来,而b、c不行,所以a是变量 所以,再回到上面的程序,finalWorld2和finalWorld4是final定义的,也是在编译期间能确定下来的,所以它能被替换,编译器就会让finalWorld2和finalWorld4指向字符串池中缓存的字符串

    4.8K50发布于 2018-03-30
  • 来自专栏全栈程序员必看

    excel编程 c语言,(巨集)

    对于编译语言,展开在编译时发生,进行展开的工具常被称为展开器。这一术语也常常被用于许多类似的环境中,它们是源自展开的概念,这包括键盘语言。 MacroML有型别语法,一种有效的理解方式是把这种语法看作是多阶段计算。 == 编程 == 在用一种不熟悉的语言进行编程时,可以这样做,首先记录下用户想要完成什么,然后打开宏文件并尝试理解命令结构如何工作。也可以修改命令以调整。 == 语言 == 语言是一类编程语言,其全部或多数计算是由扩展完成的。语言并未在通用编程中广泛使用,但在文本处理程序中应用普遍。 但由上面的定义,它完全不是一种语言。然而,它的功能已经从中发展并最终替代了用户应用程序的思想,所以它被广泛地错误地称为是一种语言。 VBA可以访问许多操作系统函数并支持文档打开时自动执行

    2.3K20编辑于 2022-09-06
  • 来自专栏走在努力路上的自己

    C语言定义(#define定义常量​、#define定义​、 带有副作用的参数、 替换的规则、 函数的对比)

    是一种将一系列命令组织在一起,作为一个单独命令来完成特定任务的方式。在编译语言中,展开是在编译时进行的,编译器会自动将替换为一系列指令。展开器是用于执行展开的工具。 除了编译语言中的这个概念也被广泛应用于其他环境中,比如键盘语言。键盘是将一系列小命令或动作转化为一系列指令,以简化日常工作。 (a) : (b) ) int main() { int x, y, z; x = 5; y = 8; z = MAX(x++, y++); printf("x=%d y=%d z=%d\n" y++ 执行,y 的值变为 9,但表达式的结果是 8。 比较 5 和 8,5 不大于 8,三目运算符选择 (y++),即 y 再次递增,现在 y 变为 10,表达式的结果是 9。 反之,这个怎可以适用于整形、长整型、浮点型等可以用于 > 来比较的类型。是类型无关的。 和函数相比的劣势: 1. 每次使用的时候,一份定义的代码将插入到程序中。

    3.8K11编辑于 2024-01-26
  • 来自专栏C语言及其他语言

    定义

    接下来呢,我们主要来练习跟自定义函数异曲同工的定义,先看看下面这题 题目描述 三角形面积=SQRT(S*(S-a)*(S-b)*(S-c)) 其中S=(a+b+c)/2,a、b、c为三角形的三边。 定义两个带参的,一个用来求area, 另一个用来求S。 写程序,在程序中用带实参的名来求面积area。 输入 a b c三角形的三条边,可以是小数。 输出 三角形面积,保留3位小数 样例输入 3 4 5 样例输出 6.000 PS:有句话很经典哦“定义只是简单的字符替换哦” 详细题解见C语言网题库1038题 明天就是咱们C语言网有奖月赛的日子了,希望大家积极参加哦

    1.4K60发布于 2018-04-18
  • 来自专栏电子技术研习社

    C语言 | offsetof和container_of

    今天分享C语言中的两个,这两个包含了指针和结构体的知识,非常具有代表性。另外,这个题目曾经是大疆无人机的一道笔试题,可见,这两个对C语言基础还是有一定要求的。 废话不多说,今天要说的两个分别是offsetof和container_of,第一个是用来计算结构体中某个成员相对于结构体的偏移量,第二个是已知指向结构体某个成员的指针,来计算结构体的指针。 所以c实际上的偏移量是8,而不是5。这里因为结构体的成员很少,且类型不复杂,所以可以自己手动算出来,但是如果结构体更复杂一些,我们就不可能自己手动去算了,那有什么好的办法呢? 比如我们要给变量c赋值,我们可以用简单的方法: s.c=12; 我们也可以用指针的方法: short *p=(short*)((int)&s+8); *p=12; 显然第二种方法要麻烦的多,并且要自己计算偏移量 stdio.h> struct mystruct { char a; // 0 int b; // 4 short c; // 8

    2.5K30发布于 2020-07-10
  • 来自专栏全栈程序员必看

    excel java,Microsoft Excel运行Java程序

    大家好,又见面了,我是你们的朋友全栈君。 I have learnt to read and write an Excel file using a Java program with the he

    1.2K10编辑于 2022-09-07
  • 来自专栏全栈程序员必看

    Excel教程 (的介绍与基本使用)

    Excel教程 (的介绍与基本使用) Microsoft excel是一款功能非常强大的电子表格软件。 为了完成工作,就让我们一起来学习””的妙用吧。 一)、的自学 首先需要明确的是,本文不可能教会您关于的所有内容。 您需要学会利用”录制”的方法来学习:点击excel” 工具”下拉菜单中””下?quot;录制新”,此后可象平时一样进行有关操作,待完成后停止录制。 对录制进行修改不仅可以学习的使用,还能大大简化的编写。 二)、基本概念 为了学习excel中的,我们需要先了解以下一些基本概念。 如Range(“A5”)、 Range(“A1:H8”)、Range(“Criteria”)。虽然可用Range(“A1”)返回单元格A1,但用Cells更方便,因为此时可 用变量指定行和列。

    10.9K10编辑于 2022-08-23
  • 来自专栏跟Qt君学编程

    断言assert

    assert()主要用于辅助测试程序; assert()当表达式求值为假(非零)时, assert()就在标准错误流(stderr)写入一条错误信息(包括出错文件与行号)并调用 abort()函数终止程序

    1.4K10发布于 2019-07-15
  • 来自专栏网络收集

    Sass混合

    三、Sass混合 在Sass中,我们可以使用“混合(mixin)”来处理经常被多个地方使用的相同的CSS代码块。混合,跟JavaScript中的函数很相似,我们可以称之为“Sass中的函数”。 一、混合的定义和调用 在Sass中,我们使用“@mixin”来定义一个混合,然后使用“@include”来调用一个混合。 混合名; } 说明: Sass中的混合跟C语言的是非常相似的。 所谓的“”,指的是可重用的代码块。 @mixin用来定义一个混合,@include用来调用一个混合。此外,@mixin跟CSS3中的@font-face和@media语法是一样的。 在Sass中,我们不仅可以定义“不带参数的混合”,也可以定义“带参数的混合”。

    71510编辑于 2022-05-14
  • 来自专栏懂点编程的数据分析师

    相关问题

    常量与函数 C++中用#define <名> <字符串>命令定义,在代码中将字符串替换名出现的位置。 使用的原因? 在预处理阶段的替换仅仅是将目标字符串替换名,在代码中对的使用必须极其谨慎,否则很容易写出有问题的程序。 定义的主要有两个场景: 通过定义常量:在常量变更时仅需要修改的定义而不需要修改所有使用到常量的位置 带参数的可以减少系统调用函数的开销:对于一些特别简单的函数而言,函数的调用开销不可忽视,带参数的在预处理阶段就进行了展开 C++是否应该避免使用,如何避免使用? max << std::endl; std::cout << a << std::endl; 输出结果(以下结果是错误的): 7 // 正确的答案是 max 输出 6 8 // 正确的答案是 a

    1K10编辑于 2021-12-16
领券