有什么区别
int * a[10];
和
int (*b)[10];
我知道第一个是整数指针数组,但第二个是什么?如果我尝试分配
int (*c)[10] = a;
我到底在做什么?
我正在使用MacPorts尝试安装cmake,它给了我这个.我在网上寻求帮助,但无济于事.关于如何让它消失的任何想法?
运行OSX 10.6.6(2.4 Ghz i5,4GB)
$ sudo port install cmake
---> Computing dependencies for cmake
---> Building cmake
Error: Target org.macports.build returned: shell command failed (see log for details)
Log for cmake is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_cmake/main.log
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>
$
Run Code Online (Sandbox Code Playgroud) 我正在尝试优化一些C++代码以提高速度,而不关心内存使用情况.如果我有一些功能,例如,告诉我一个字符是否是一个字母:
bool letterQ ( char letter ) {
return (lchar>=65 && lchar<=90) ||
(lchar>=97 && lchar<=122);
}
Run Code Online (Sandbox Code Playgroud)
是否可以更快地创建查找表,即
int lookupTable[128];
for (i = 0 ; i < 128 ; i++) {
lookupTable[i] = // some int value that tells what it is
}
Run Code Online (Sandbox Code Playgroud)
然后修改上面的letterQ函数
bool letterQ ( char letter ) {
return lookupTable[letter]==LETTER_VALUE;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试在这个简单的区域中优化速度,因为这些函数被大量调用,因此即使速度的小幅增加也会累积到长期增益中.
编辑:
我做了一些测试,如果查找数组被缓存,它似乎比查找函数表现得更好.我通过尝试测试了这个
for (int i = 0 ; i < size ; i++) {
if ( lookupfunction( text[i] ) )
// do something
}
Run Code Online (Sandbox Code Playgroud)
反对 …