C语言源代码分析(越易懂越好,我只是一个初学者)?eclipse源代码应该怎么分析

本文目录
- C语言源代码分析(越易懂越好,我只是一个初学者)
- eclipse源代码应该怎么分析
- 解析源代码是什么
- 《源代码》的结局看似美满,细思极恐,它的结局究竟讲了什么意思
- 服务器程序源代码分析之二:php-fpm
- 请问源代码是什么意思啊
C语言源代码分析(越易懂越好,我只是一个初学者)
printf“”里的是原样输出的东西,但是你的y是未知的,是你程序运行到这一步才可以得到的,你没有办法写到“”里,所以你用%d代替,%d不会原样输出,它代表整数,而你的y的数值就是%d的数值,就是当printf里有%d的时候程序知道它的数值是“”,后跟的那个数,也就是这个程序里的y,比如printf(“%d%d%d”,a,b,c);第一个%d输出的是a的值,第二个%d输出的是b的值,第三个就是c的值了,如果是%c就是字符的意思,%f就是浮点型的数
eclipse源代码应该怎么分析
一、概述
走入Eclipse的内核,看看它到底是怎么工作的?
1、Eclipse源代码
***隐藏网址***
2、源代码阅读工具
Source Insight
V3.5
它其实是一个代码软件,因为有强大的代码分析工具,可以很方便地跟踪代码的相关性,所以常用来作为阅读代码的工具。
***隐藏网址***
为了方便代码的分析,我们只提取以下几个插件的代码:
org.eclipse.platform
org.eclipse.platform_3.1.1.jar
org.eclipse.core.commands
org.eclipse.core.commands_3.1.0.jar
org.eclipse.core.expressions
org.eclipse.core.expressions_3.1.0.jar
org.eclipse.core.runtime
org.eclipse.core.runtime_3.1.1.jar
org.eclipse.help
org.eclipse.help_3.1.0.jar
org.eclipse.jface
org.eclipse.jface_3.1.1.jar
org.eclipse.osgi
org.eclipse.osgi_3.1.1.jar
org.eclipse.swt.win32.win32.x86
org.eclipse.swt.win32.win32.x86_3.1.1.jar
org.eclipse.swt
org.eclipse.swt_3.1.0.jar
org.eclipse.ui.workbench
org.eclipse.ui.workbench_3.1.1.jar
org.eclipse.ui
org.eclipse.ui_3.1.1.jar
org.eclipse.update.configurator
org.eclipse.update.configurator_3.1.0.jar
将这些代码解压缩到一个空目录里,然后导入到Source
Insight的Project里。
二、Eclipse启动过程
首先我们从Eclipse的启动过程开始分析。
1、eclipse.exe
它是Eclipse的启动文件,是与平台相关的可执行文件。它的功能比较简单,主要是加载startup.jar文件,代码在Eclipse源代码的/features/org.eclipse.platform.launchers/library目录下,对应多个平台。对于win32平台,你可以直接运行win32目录下的build.bat文件来编译得到它(需要安装C编译器)。
2、startup.jar
这个是Eclipse真正的启动文件,你可以在命令行下运行java
-jar
startup.jar命令来启动Eclipse。它的入口是org.eclipse.core.launcher.Main,它对应的源代码在org.eclipse.platform/src目录的子目录下的Main.java。我们从main函数往后跟踪,找到basicRun,这个是启动的主要部分。
protected
void basicRun(String args) throws Exception {
......
setupVMProperties(); //设置VM属性
processConfiguration(); //读取configuration/config.ini配置文件
......
// need to ensure that getInstallLocation is called at least
once to initialize the value.
// Do this AFTER processing the
configuration to allow the configuration to set
// the install
location.
getInstallLocation();
// locate boot
plugin (may return -dev mode variations)
URL bootPath =
getBootPath(bootLocation);
setSecurityPolicy(bootPath);
//设置执行权限
// splash handling is done here, because the default
case needs to know
// the location of the boot plugin we are going to
use
handleSplash(bootPath);
invokeFramework(passThruArgs, bootPath); //启动Eclipse内核
}
这个函数前面部分是设置一些属性,最关键的是最后invokeFramework函数,它是启动Eclipse的核心。下面我们看看invokeFramework函数的具体内容。
private
void invokeFramework(String bootPath)
throws
ClassNotFoundException, NoSuchMethodException, IllegalAccessException, Error,
Exception, InvocationTargetException {
......
URLClassLoader loader = new StartupClassLoader(bootPath, parent);
Class clazz = loader.loadClass(STARTER); //加载
String STARTER =
"org.eclipse.core.runtime.adaptor.EclipseStarter";
Method method =
clazz.getDeclaredMethod("run", new Class.class,
Runnable.class}); //获得run方法
......
method.invoke(clazz, new Object {passThruArgs, endSplashHandler});
//调用run方法
......
}
首先创建加载器loader,它是一个URLClassLoader类型。接着加载类"org.eclipse.core.runtime.adaptor.EclipseStarter",获得其run方法,然后调用此方法。
3、OSGI启动
"org.eclipse.core.runtime.adaptor.EclipseStarter"类的源代码位于/plugins/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/core/runtime/adaptor。可见它已经位于OSGI包内,它是OSGI的启动类。
public
static void startup(String args, Runnable endSplashHandler) throws Exception
{
......
adaptor = createAdaptor(); //建立适配器
......
OSGi osgi = new OSGi(adaptor); //建立OSGI对象,这就是我们要找的东西
......
osgi.launch(); //启动OSGI
......
context = osgi.getBundleContext(); //获得已加载的Bundle的执行上下文
......
Bundle startBundles = loadBasicBundles(); //加载Bundle
setStartLevel(getStartLevel()); //设置启动级别
......
}
4、Eclipse固定菜单的实现类(如Project、Help等菜单)
org.eclipse.ui.internal.ide包下的WorkbenchActionBuilder.java类中的 protected void
fillMenuBar(IMenuManager menuBar)方法,具体实现如下:
protected void
fillMenuBar(IMenuManager menuBar) {
menuBar.add(createFileMenu());
//在菜单栏增加File菜单
menuBar.add(createEditMenu());
menuBar.add(createNavigateMenu());
menuBar.add(createProjectMenu());
menuBar.add(new
GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
menuBar.add(createWindowMenu());
menuBar.add(createHelpMenu());
}
如果想去掉File菜单下的Move项可以注掉private
MenuManager createFileMenu()方法中的以下语句:
// menu.add(moveAction);
解析源代码是什么
分类: 电脑/网络 》》 操作系统/系统故障
问题描述:
(1)什么是源代码啊?这有什么用?"解析"怎么理解?
(2)解析网页的HTML源代码又是什么意思?
(希望专业人士能够详细解答一下,感谢!)
解析:
源代码!即某个文件的源程序语句 ,编程用
解析有域名解析,递归解析,什么都有、如果你指的源代码是网页的话那么应该是HTML标记符,你用Dreamweaver打开一个网页文件(以HTM为扩展名的)就可以看见了,或者直接用记事本打开也行。
2、解析我认为是分析查看的意思!
《源代码》的结局看似美满,细思极恐,它的结局究竟讲了什么意思
结局表明了上尉改变了世界,火车没有爆炸,或者整件事都没有发生。从古德温未定收到的短信中你可以看到,古德温不知道爆炸未遂,所以她读了短信,惊讶地发现这和军官报告的一样。
医生最后说了源代码的工作原理,表明源代码还没有起作用,他们可能已经要求上尉为某项任务做准备,但由于上尉的身份在整个问题上发生了变化,所以情况的现实回到了以前,完全改写了。不是上尉和女主角在一起,而是肖恩,他的思想被上尉取代了,真正的上尉已经死了(在实验室里)。
***隐藏网址***
扩展资料
影片《源代码》是由邓肯·琼斯执导,杰克·吉伦哈尔、维拉·法米加、米歇尔·莫娜汉等人联袂出演。影片于2011年4月1日在美国上映。
影片讲述一个死人试图从核灾难中拯救芝加哥的故事,充满悬念,制作精美,一部经典的恐怖作品。这部以科幻片为背景的惊悚片,起初并没有特别引人注意,但是影片确实太优秀了,简直醍醐灌顶。
《源代码》用精密和谨慎剧情,给世界传达了一个,不要忘记土拨鼠菲尔效应和为和平干杯的信念。导演邓肯·琼斯的华丽转身,将生硬的科幻小说,变得动人心弦,未来将有更多让他大展拳脚的机会。
百度百科-源代码
服务器程序源代码分析之二:php-fpm
php作为排名top2 互联网开发工具,非常流行,可以参考:中国最大的25个网站采用技术选型方案
php这个名称实际上有两层含义
直接定义:
php-fpm从php5.3.3开始已经进入到php源代码包,之前是作为patch存在的
很少人会去读php本身源代码,我6年前解决php内存泄露问题的时候做了些研究,最近再查看了一番,发现php的开发者很有诚意,这是一款非常出色的服务器软件,支持如下
在linux服务器上,如果不设置 events.mechanism ,那么默认就是采用epoll,所以
php-fpm的IO模型&并发处理能力和nginx是完全一致
nginx以性能卓越闻名,大部分程序员都认为php效率低下,看了源代码,才知道这是传奇啊
在高性能部署的时候,大家往往会针对性的优化nginx 。我自己之前部署php程序也犯了错误,8G内存的server,php-fpm的max children都会设置128+,现在看来太多了,参考nginx的部署:
php-fpm配置为 3倍 cpu core number就可以了
php-fpm稳定性比nginx稍差 这是因为php-fpm内置了一个php解析器,php-fpm进程就和php程序捆绑了,如果php脚本写得不好,有死循环或者阻塞在某个远端资源上,会拖累加载它的php-fpm进程
而nginx和后端应用服务器之间通过网络连接,可以设置timeout,不容易堵死的
php-fpm的fastcgi是短连接 我原以为是长连接的,看了代码才知道也是短连接,处理一个request就关闭掉
php-fpm接口采用fastcgi ***隐藏网址***
php-fpm等同于OpenResty OpenResty是一个国人开发的nginx模块,就是在nginx引入lua解释器. 实际上,它和php-fpm的唯一差别就是一个采用php语法,一个用lua,所以OpenResty要作为nginx增强包使用还可以,要选择它作为一个主要编程工具,没有任何必要
从架构上来说,php-fpm已经做到最好,超过大多数 python部署工具,我再也不黑它了
请问源代码是什么意思啊
分类: 电脑/网络 》》 程序设计 》》 其他编程语言
问题描述:
要理解那些源代码都要知道一些什么知识呢?有没有相关方面的知识的网站或者说论坛呢?吗法给推荐一下,谢谢了
解析:
源代码就是源程序,通常情况下我们看到的是经过打包处理的文件,而编写这些文件的一行一行的计算机语言代码就是源代码,比如:
#include
main()
{
int a,b,c; /*定义三个变量a,b,c*/
a=10; /*给变量a赋值10*/
b=2;
c=a+b; /*将a+b的和赋予c*/
prinft("c=%c",c); /*输出变量c的值*/
}
这是一段由c语言写的程序,也就是源程序。

更多文章:
web前端开发网页制作代码(用html如何制作一个简单的网页代码)
2026年4月26日 08:27
网络推广计划书(哪位专业人士帮忙做个网站推广策划书..急用.!!!)
2026年5月10日 20:05




















