可能重复:
汇编程序什么时候比C快?
你好,
这纯粹是一个理论问题,因此,如果有一个"无限"时间来制作一个简单的程序,以及对C和汇编的高级知识,那么在汇编中做一些事情真的更好吗?将C编译成汇编(机器代码)时,"性能"会丢失吗?
根据性能我的意思是,现代C编译器在某些任务中做得不好,直接在Assembly中编程加速吗?
谢谢.
我有一个用PHP编写的独立类,用于一些非常基本的LDAP/AD函数.我想在我正在使用cakephp的项目中使用这个类.
它看起来像在cakephp 1.2中我可以将该类添加为供应商,但看起来像cakephp 1.3删除了对供应商的支持.那么我该如何从这个类中调用一些函数呢?
(我想尝试保持类本身相同而不是把它变成插件,因为这似乎是不必要的)
谢谢!
代码如下:
**<?php
class UsersController extends AppController {
var $name = 'Users';
//commented out because it breaks the script
//App::import('Lib', 'ldap');
function index() {
$this->User->recursive = 0;
$this->set('users', $this->paginate());
}
function login() {
if (!empty($this->data)) {
if ($ldap->auth($this->data['User']['user'],$this->data['User']['password'])) {
$this->Session->setFlash(__('The user has been saved', true));
$this->Session->write('user', $this->data['User']['user']);
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('Login Failed', true));
}
}
}
function logout() {
$this->Session->delete('user');
$this->redirect($this->referer());
}
function view($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid user', …Run Code Online (Sandbox Code Playgroud) 我一直在尝试Javascript中的设计模式,这将允许我拥有可以被实例函数覆盖的单例函数.
这是一个简短的例子:
Date.tomorrow = function () {
return Date.today().add(1).days();
}
(function(p) {
p.tomorrow = function() {
var date = this.clone().clearTime();
return date.equals(Date.tomorrow());
}
})(Date.prototype);
Run Code Online (Sandbox Code Playgroud)
所以有两个tomorrow()功能.直接从Date函数调用时:
>>> Date.tomorrow()
=> Fri Jul 23 2010 00:00:00 GMT-0500 (CST) { _orient=1, more...}
Run Code Online (Sandbox Code Playgroud)
但是,当您首先实例化Date实例时:
>>> var date = new Date()
>>> date.tomorrow()
=> false
Run Code Online (Sandbox Code Playgroud)
我很遗憾,因为我相信你能分辨出来,但希望你能明白这一点.我的问题是:第一个tomorrow()函数与Date对象的关系是什么?究竟是什么附属于什么?
假设您使用的是普通函数,而不是构造函数.是否可以从原始函数中调用增强函数?
在构造函数中,您可以这样做:
this.constructor.functionName();
Run Code Online (Sandbox Code Playgroud)
但如果该函数未被用作构造函数,显然该constructor引用将不存在.有没有其他方法来访问增强功能?
这个问题背后的动力源于我重新组织项目JS代码的工作.我们正在实现Sprockets系统将我们的源代码分解为模块,其中基本上是在我们去的时候装饰一个基本命名空间,而不是将它们全部打包在一个不可读的内联对象定义中.
我们有一些非常大的事件连接,这很好分成单独的函数,但我宁愿不必单独调用每个函数; 相反,我想要一个可以一次调用所有子功能的超级功能.
我总是可以创建一个all()函数或者其他东西来实现这一点,但是如果调用顶级函数执行所有附加到它的子函数,那么从API的角度看它会更清晰.
感谢Francisco的回应,我现在正在实现我的想法.这是一个例子,以防任何人好奇.
var Namespace = {};
var Namespace.wireup = (function () {
return …Run Code Online (Sandbox Code Playgroud) 我仍然是C#的新手,与C/CPP相比,我很难习惯它.
如何在不退出程序的情况下退出C#上的函数,就像这个函数一样?
if (textBox1.Text == "" || textBox1.Text == String.Empty || textBox1.TextLength == 0)
textBox3.Text += "[-] Listbox is Empty!!!!\r\n";
System.Environment.Exit(0);
Run Code Online (Sandbox Code Playgroud)
这将不允许返回类型,如果单独留下它将继续通过未停止的函数继续.这是不可取的.
在以下情况下可以使用哪些方法
在下面的场景中,对象需要根据某些条件逻辑进行实例化,工厂方法模式是否有助于避免客户端代码由于if/elseif条件的数量而变得混乱(如果越来越多,这也将是一个维护噩梦由于逻辑的不同变化,需要创建产品.
或者是否有任何其他设计模式可以拯救?
public interface IProduct
{
void Method1();
}
public class ProductA : IProduct
{
void Method1()
{
}
}
public class ProductB : IProduct
{
void Method1()
{
}
}
public class ProductC : IProduct
{
void Method1()
{
}
}
public class Client
{
public void Test()
{
int count = 5;
IProduct product;
if (count < 10)
{
product = new ProductA();
}
else if (count == 10)
{
product = new ProductB();
}
else …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何让预处理器将换行符插入宏扩展结果?
#define IDENTIFIER { /*new line here*/\
my_multiline(); /*new line here*/\
macro(); /*new line here*/\
} /*new line here*/
Run Code Online (Sandbox Code Playgroud)
我可以强制C预处理器在其扩展中生成新行吗?我不相信有一种标准的方法可以做到这一点,但我不介意Visual C++(2008)和gcc的平台特定黑客.
我对通过m4或单独的预处理器执行此操作不感兴趣.
为什么我问这个:
这或多或少只是好奇心.因为它是一个黑客,我不会在生产中尝试这个,但我想知道我是否能够这样做.几天前,我偶然发现了这个问题:
这是一个我自己想要解决的问题.我考虑过创建一个包含标题的宏,但是使用正确的pragma来禁用包含之前的警告,包括我要关闭警告的标题,在include之后启用警告.
当然,我可以创建一个脚本来生成模拟包含警告和包含的pragma.
我的第一个问题是,由于#include是一个预处理器指令,宏生成它有点无用.但后来我找到了这个答案:
有了这个,我相信如果我能够强制编译器在它的扩展中生成换行符,我可以生成特殊的包含宏.
我现在在家,但明天我在工作时会发布我的代码.
我在家里有一台工作电脑和一台笔记本电脑,我开始使用Resharper.不幸的是,每次添加实时模板或更改格式设置时,我都必须在计算机之间导出和导入设置/模板.
对于visual studio设置,我使用自动将我的设置保存到此文件选项以及Dropbox上的文件来完成此操作.有没有办法用Resharper设置/模板做到这一点?
我的部分申请包括"聊天"系统.我为每个用户维护一个队列.发送给用户的消息被放入队列中,用户的软件定期轮询休息服务以获取新消息,此时队列被抽取消息,然后返回给用户.
该系统非常简单,运行良好,并且我需要它完成所有工作.
我的问题是; 我有数百个(很快就有数千个)队列混乱了应用程序的队列列表.
我还有其他的队列,而且令我不安的是,我不能像blob存储中的东西一样"组织"它们.
我是否遗漏了某些内容,或者我应该忽略队列列表,并依赖于这样一个事实:当用户来来往往时,我正在正确管理队列的创建和删除?
在创建应用程序或库的配置时,我通常更喜欢在该<appSettings>部分上使用自定义配置部分,原因如下.
鉴于此,何时我想使用该部分的松散类型<add/>键/值机制<appSettings>?我记得,本节中的应用程序级配置可以覆盖machine.config中的现有机器级配置.这是唯一的情况,还是有其他原因?
.net configuration configurationmanager appsettings custom-configuration
c# ×2
c++ ×2
.net ×1
appsettings ×1
assembly ×1
azure ×1
azure-queues ×1
c ×1
cakephp ×1
cakephp-1.3 ×1
class ×1
exit ×1
function ×1
inheritance ×1
javascript ×1
methods ×1
oop ×1
php ×1
prototype ×1
resharper ×1
return ×1
settings ×1