aspectc中this可以获取的东西
this->kind 操作类型
this->targetName 被调用函数名称
this->funcName 调用函数名称
this->argsCount 参数个数
this->argType(i) 获取编号为i的参数类型
this->arg(i) 获取编号为i的参数类型
this->retType 返回值类型
example:
1.foo.c
char * foo(int a) {
return "just a test ";
}
void foo2(int a, double b) {
foo(3);
}
void foo3() {
foo2(5, 2.2);
}
int main() {
foo3();
}
2.fooac.acc
before(): call($ $(...)) {
printf("%s \" %s \" in function %s \n", this->kind, this->targetName, this->funcName);
printf(" \"%s\" parameter type : \n", this->targetName);
if ( this->argsCount == 0 ) printf("no parameter \n");
else {
for(int i = 1 ; i <= this->argsCount; i++) {
printf("arg[%d] = %s ", i, this->argType(i));
if(strcmp(this->argType(i), "int") == 0) {
printf(", value = %d ", *(int *)(this->arg(i)));
} else if(strcmp(this->argType(i), "double") == 0) {
printf(", value = %.2f ", *(double *)(this->arg(i)));
}
printf("\n");
}
}
printf("return type = %s \n \n", this->retType);
}
3.Compile 2 files with the "tacc"
>tacc foo.c fooac.acc
>
4. Run the executable file:
>./a.out call "foo3" in function main
"foo3" parameter type:
no parameter
return type = void call "foo2" in function foo3
"foo2" parameter type:
arg[1] = int , value = 5
arg[2] = double , value = 2.20
return type = void call "foo" in function foo2
"foo" parameter type:
arg[1] = int , value = 3
return type = char*
aspectc中this可以获取的东西的更多相关文章
- C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据
我曾经在系列文章中的<C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍>中介绍了微信菜单里面的重定向操作,通过这个重定向操作,我们可以获取一个code值,然后获取用户的open ...
- hibernate中session的获取使用以及其他注意事项
hibernate中session的获取使用以及其他注意事项 前言:工作时,在同时使用Hibernate的getSession().getHibernateTemplate()获取Session后进行 ...
- 新买苹果电脑,mac系统中小白应该了解哪些东西?
本文旨在分享新买了mac电脑,应该做哪些设置,帮助苹果电脑小白轻松上手使用mac电脑,当然,新电脑肯定是需要安装各种软件,这里,小编推荐一下可以看看小编写的mac软件装机必备Mac 装机必备软件推荐, ...
- Angular中通过$location获取地址栏的参数详解
Angular中通过$location获取url中的参数 最近,项目开发正在进行时,心有点燥,许多东西没来得及去研究,今天正想问题呢,同事问到如何获取url中的参数,我一时半会还真没想起来,刚刚特意研 ...
- 如何从一个1G的文件中找到你所需要的东西
如何从一个1G的文件中找到你所需要的东西,这个问题貌似面试的时候会经常问到.不过不论你用什么语言,肯定逃脱不了按指针读或者按块读. 这里介绍python的用法.本人亲自实验了,速度还可以. 如果你的文 ...
- asp.net三层架构 及其中使用泛型获取实体数据介绍
asp.net中使用泛型获取实体数据可以发挥更高的效率,代码简洁方便,本例采用三层架构.首先在model层中定义StuInfo实体,然后在 DAL层的SQLHelper数据操作类中定义list< ...
- 使用jquery中height()方法获取各种高度大全
alert($(window).height()); //浏览器当前窗口可视区域高度 alert($(document).height()); //浏览器当前窗口文档的高度 alert($(docum ...
- linux中使用top获取进程的资源占用信息
在linux中使用top获取进程的资源占用信息: Cpu(s): 1.0%us, 0.0%sy, 0.0%ni, 98.3%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0 ...
- 解析PHP中的file_get_contents获取远程页面乱码的问题【转】
在工作中,遇到一个问题.我需要将一个网址(该网址是一个json数据的接口,即 打开该网址,在浏览器中显示的是json数据),我使用file_get_contents($url),数据是乱码的. 通过查 ...
随机推荐
- 【LaTeX】对xelatex的中英文设置不同的字体
不建议用Ctex套装,不好用. 用MixTex+TexStudio! XeTeX处理中文非常方便,不需要任何设置,就能够使用系统中安装的TrueType和OpenType字体. MikTeX2.7中已 ...
- python web 开发学习路线
转载,备着 自己目前学习python web 开发, 经过两个月的摸索,目前对web开发有了浅显的认识,把自己的学习过程贴出来.1.python入门推荐老齐<从零开始学python>,&l ...
- 在centos安装 sql server
主要参考官方文档https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-red-hat
- 【Redis】一、Redis简介及五种数据类型
(一)Redis简介 Redis(Remote Dictionary Server)是一个使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value的开源 ...
- select 多选 和单选,分组
<select name="group"> <option value="1">北京</option> <option ...
- select 如何将文本居中
开始测试了几种方式但是结果都是失败的,最后测试一种方式终于成功了,所以做下笔记: select{ width: 3.2rem; height: 1.2rem; border-radius: 0.6re ...
- 洛谷——P1122 最大子树和
P1122 最大子树和 树形DP,$f[u]$表示以u为根的子树的最大美丽指数 $f[u]+=max(0,f[v])$ 树形DP的基本结构,先搜再DP,这题感觉有点儿贪心的性质,选就要选美丽值> ...
- Qt Creator 中文乱码问题
一. Qt 4 乱码问题 解决方案 1. 在Qt 中 快捷菜单选项功能中 Edit(编辑) --> Select Encoding...(选择编码) 选择载入(显示)编码和储存编码,要解决中文 ...
- python BeautiulSoup
==============================================查找网页中<a>标签中的链接from bs4 import BeautifulSoup with ...
- Codeforces 912D - Fishes
传送门:http://codeforces.com/contest/912/problem/D 本题是一个概率问题——求数学期望. 在一个n×m的方格中,有k个“*”.每个格子里可能有0~1个“*”. ...