我不完全确定,但这看起来不对劲:
我有一个名为fraction.h的头文件,其中我存储了一个分数结构和处理它的方法,一个方法用于在文件中写一个分数,在这个函数的签名中,一个参数是一个FILE指针.
fraction.h:
...
const Fraction * fraction_fwrite(const Fraction * f, FILE * file);
...
Run Code Online (Sandbox Code Playgroud)
fraction.c:
#include <stdio.h>
#include "fraction.h"
...
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试编译使用分数的程序时,我收到错误,
这是我在Makefile中的内容:
program_test: fraction.o program_test.o
Run Code Online (Sandbox Code Playgroud)
我当然在program_test.c中包含了fraction.h.但我一直收到这个错误:
fraction.h:34:54:错误:未知类型名称'FILE'
有人可以解释编译器包含文件的不同步骤吗?因为<stdio.h>
是在fraction.c中,为什么它会打击这个不明显的类型错误?
我应该包含<stdio.h>
在fraction.h中吗?从我的经验来看,这看起来并不合适.
我如何在我的Perl代码中仿效Ruby的"包含"/"扩展"机制?
我们以Ruby中的以下代码为例:
module ActiveRecord
class Base
class << self
#...
end
#...
end
Base.class_eval do
include ActiveRecord::Persistence
extend ActiveModel::Naming
extend QueryCache::ClassMethods
extend ActiveSupport::Benchmarkable
extend ActiveSupport::DescendantsTracker
include ActiveModel::Conversion
include Validations
extend CounterCache
include Locking::Optimistic, Locking::Pessimistic
include AttributeMethods
...
end
end
Run Code Online (Sandbox Code Playgroud)
它引导我提出这个问题,因为在几天的研究中我找不到任何明确的想法.那么,也许在Perl中存在一些组织它的好方法?
我在自己的文件中有一个名为GameState的类,该类有一个指向另一个StatusView类型对象的指针,该对象位于自己的文件中.在GameState.h中,我已经包含了StatusView标头,但是当我尝试编译它时,我收到错误:
missing type specifier - int assumed
Run Code Online (Sandbox Code Playgroud)
但是,当我在包含它之后转发声明StatusView时,我能够编译它.我不知道是什么导致要求转发声明类.
我有一个标题文件,包含在我的所有其他页面上.我想知道如何使用相同的页眉来获得不同的页面标题.我正在使用PHP和MySql.谢谢!
我的C++代码有问题.如果我插入#include "god.hpp"
的neuron.hpp
,g++
让我看到以下错误:
In file included from neuron.hpp:4,
from main.cpp:5:
god.hpp:11: error: ‘Neuron’ has not been declared
god.hpp:13: error: ‘Neuron’ was not declared in this scope
god.hpp:13: error: template argument 1 is invalid
god.hpp:13: error: template argument 2 is invalid
main.cpp: In function ‘int main()’:
main.cpp:36: error: no matching function for call to ‘God::regNeuron(Neuron*&)’
god.hpp:11: note: candidates are: long int God::regNeuron(int*)
In file included from god.hpp:5,
from god.cpp:3:
neuron.hpp:10: error: ‘God’ has not been declared …
Run Code Online (Sandbox Code Playgroud) 我需要包括一个PHP文件里面的html文件,我尝试使用include
,并require
在PHP文件,但CSS样式是不适用的只包含的内容.有没有办法用样式和jquery包含完整的html文件?
在每个页面的最开始,我都包含一个启动SESSION等的文件,让我们调用它session.php
.在这个文件中session.php
,我包含一个包含函数的文件,让我们调用它function1.php
,因为我需要函数可用session.php
.
然而,在后来的主页我还包括function2.php
其需要访问设置变量session.php
,所以我还试图包括session.php
在function2.php
.
问题是因为function1将被多次声明而发生错误...
致命错误:无法重新声明function1()(之前在...中声明)
那么,对于这个更优雅,更干净的解决方案呢?你怎么能解决它?
基本上,我需要访问主页中包含的函数内的变量...之前...
所以我有:
第A页 - /WWW/index.php
第B页 - /WWW/folder/index.php
第C页 - /WWW/assets/functions.php
我希望能够使用相同的代码行在页面A和页面B上包含页面C.
现在对于页面A: include "/assets/functions.php";
第B页: include "../assets/functions.php";
"../"是我的错误.根据文件嵌套在文件夹中的次数,我必须添加"../"
我试过了: include dirname(__FILE__) . "/assets/functions.php";
但它适用于Page A而不是Page B.
同样在function.php中我希望能够包含其他PHP文件.
我有一个PHP脚本,它使一些MySQL查询只是将一些HTML(带有动态数据)写入页面.我想要做的是发送一封包含此HTML的电子邮件.让我们说,我想要插入到电子邮件正文中的HTML代码,我想my_html_script.php
发送它2个$_GET
参数,以使动态内容正确.
我在Joomla框架中,因此发送电子邮件的代码如下所示:
$mailer =& JFactory::getMailer();
$sender = $from_email;
$mailer->setSender($sender);
$email = explode(';',$email);
for ($i=0;$i<count($email);$i++){
$mailer->addRecipient(trim($email[$i]));
}
$body = "
";
$mailer->setSubject('This is the subject');
$mailer->setBody($body);
// Optional file attached
//$mailer->addAttachment();
$send =& $mailer->Send();
if ( $send !== true ) {
//die($send->message);
echo "<p>email FAILED".$recip."</p>";
} else {
//mail sent
echo "Emailed successfully.";
}
Run Code Online (Sandbox Code Playgroud)
所以,基本上我需要将HTML输出包含my_html_script.php
到$body
字符串变量中.我该怎么做呢?
谢谢!
在我正在进行的项目中,我有一个相当大的模板类,我已经实现了这样:
我有我的头文件
// MyBigClass.h
#ifndef MYBIGCLASS_H
#define MYBIGCLASS_H
template <typename T>
class MyBigClass {
/* -- snip -- */
};
#include "MyBigClass.cpp"
#include "MyBigClass_iterator.cpp"
#include "MyBigClass_complicatedFunctionality_1.cpp"
#include "MyBigClass_complicatedFunctionality_2.cpp"
#endif
Run Code Online (Sandbox Code Playgroud)
然后我的所有实现文件基本上都是这样的:
// MyBigClass_foobar.cpp
template <typename T>
void MyBigClass<T>::member_1(){
/* -- snip -- */
}
template <typename T>
int MyBigClass<T>::member_2(int foo, T & bar){
/* -- snip -- */
}
// etc, etc
Run Code Online (Sandbox Code Playgroud)
在main.cpp
,我只是包括MyBigClass.h
,一切正常,编译得很好.我将实现分成多个文件的原因是因为我更喜欢处理三个或四个200-400行文件,而不是一个1200行文件.文件本身在逻辑上是相当有条理的,仅包含嵌套类的实现或一组相互关联的成员函数.
我的问题是,这是完成了吗?前几天我向别人展示时,我得到了一个奇怪的反应,所以我想知道这是不是一种不好的做法,或者是否有更好,更常用的方式来完成这样的事情.