我只是注意到在sqlite 3源代码文件的开头,它说:
Array ( [Oh] => Array ( [state] => Oh ) [income] => 100 [count] => 1 [Ky] => Array ( [state] => Ky ) )
Array (
[OH] => Array
( [income] =>
[count] =>
)
[KY] => Array
( [income] =>
[count] =>
)
Here is my code
Example data in $array
Array ( [0] => Array (
[SurveyDate] => 1952-06-21
[Income] => 100
[CountyState] => Hamilton|Oh
[count] => 1 ) )
function update_array_value3( $array )
{
foreach ($array as $row)
{
$arrCountyState = explode( "|", $row['CountyState'] );
$key = $arrCountyState[1]; // OH or KY
if( !isset( $_SESSION['sIncome'][$key] ) )
{
$_SESSION['sIncome'][$key]['state'] = $key;
$_SESSION['sIncome'][$key]['income'] = $row['Income'];
$_SESSION['sIncome'][$key]['count'] = 1;
} else
{
$_SESSION['sIncome'][$key]['state'] = $key;
$_SESSION['sIncome'][$key]['income'] += $row['Income'];
$_SESSION['sIncome'][$key]['count'] += 1;
}
}
我以前不知道这一点,也找不到权威的资料来备份它。这是真的?那么C ++呢?
答案 0 :(得分:5)
它不会自动使其更快,但是有一些道理。将所有内容都保存在一个文件中,可使编译器进行优化,否则将无法进行优化。例如,一个函数不能内联,除非它属于与之相同的翻译单元。
内联函数基本上意味着将函数调用替换为函数主体。这样的好处是您可以跳过跳转到功能代码和返回跳转的步骤。但是,如果该函数在另一个转换单元中,则编译器将仅知道该函数的原型,而不是函数主体,这又意味着它必须执行跳转。
话虽如此,我强烈建议不要使用这种方法。如果您确实需要进行最后的调整,请使用可以从源代码树创建单个c文件的某种脚本。