标签: include

使用C++编译器包含C头文件时的警告

我有一些头文件是为在C99程序中使用而编写的.此标头包含所有函数定义,并且不与源文件配对.我将它包含在C++文件中.

我的C++编译器标志包括-pedantic -std=c++11,它在头文件中给出了各种警告,例如"ISO C++禁止复合文字"和"ISO C++禁止可变长度数组".显然,C++编译器将C99代码视为C++.两个问题:

  1. 当尝试编写将在使用不同编译器的各种平台上正确运行的代码时,这是一个潜在的问题吗?
  2. 什么是解决警告并生成标准符合代码的好方法?我正在考虑使用gcc制作一个预编译的头文件,但是对于确保我不会因在C++源代码中包含C预编译头而产生意外后果的过程知之甚少.

谢谢

c c++ gcc include

1
推荐指数
1
解决办法
1298
查看次数

为什么在C中使用目标文件?

当我编译一个C程序时,为了方便起见,我已经在最后包含了某个头文件的源文件.因此,如果main.c包含util.h,则util.h将包含util.c将使用的所有头文件,概述类型或结构等,然后在最后它包含util.c. 然后,当我编译时,我只需要使用gcc main.c -o main,剩下的就全部用了.

我一直在寻找C编码标准,试图弄清楚最好的做事方式是什么,而且有这么多,以及如此多的相互矛盾的观点,我不知道该怎么想.为什么这么多地方建议单独编译目标文件而不是将它们全部包含在网络中?util从来没有涉及过util.c,所以两者完全独立,理论上(我的理论)它会没问题,但我可能错了,因为这是计算机科学,人们错了,即使他们是对的,所以,如果我已经错了,我可能错了.

有人说头文件应该只是原型,源文件是包含它的源文件,它是必要的系统头文件.从纯粹的美学观点来看,我更喜欢在标题中使用所有信息(类型,系统标题,原型)(在本例中为util.h),并且在util.c中只包含一个函数代码(不包括一个"#include") util.h""在最顶层.

我想我得到的一点是,所有这些东西都有效,选择一种方法听起来对任何不了解背景的人来说都是随意的(我).请告诉我为什么和什么.

c linker include

1
推荐指数
1
解决办法
768
查看次数

Yii在视图上呈现Javascript文件

我想在我的视图中包含JavaScript文件.

我想将它们一起渲染而不是脚本文件(registerScriptFile).

我怎样才能做到这一点?

javascript php include yii

1
推荐指数
1
解决办法
1158
查看次数

如何在perl中包含和使用pm文件

好的,这是主文件使用那些包含pm文件的方式

use Dancer;
use Net::OAuth2::Client;
use HTTP::Request::Common;

sub client {
   Net::OAuth2::Client->new(
     '0', # OAuth 2.0 client_id
     '1234567890abcdef', # OAuth 2.0 client_secret
     site => 'http://www.deviantart.com',
     authorize_path => 'https://www.deviantart.com/oauth2/draft15/authorize?response_type=code',
     access_token_path => 'https://www.deviantart.com/oauth2/draft15/token?grant_type=authorization_code',
     access_token_method => 'GET',
   )->web_server(
     redirect_uri => uri_for('/auth/deviantart/callback')
   );
}
Run Code Online (Sandbox Code Playgroud)

我已将这些PM文件放在与此目录相同的目录中但由于找不到而失败

在此输入图像描述

这些文件就是这样开始的

package Net::OAuth2::Client;
package HTTP::Request::Common;
package Dancer;
Run Code Online (Sandbox Code Playgroud)

perl perl-module include package

1
推荐指数
2
解决办法
2万
查看次数

如何在页脚中包含jquery - 在标题中使用$(document).ready时?

最佳实践说:在页脚中包含所有javascript.为了更快的页面加载.

同意..但是jquery当你$在遗留代码库中通过你的身体html完成所有陈述时,你如何对你的include 做?

要么

$(document).readyhead

更新 是否意味着 - 在基本包含之后,应该始终在页面的页脚中添加页内javascript jquery

html javascript performance jquery include

1
推荐指数
1
解决办法
3097
查看次数

如何包含扩展classmethods并正确引用class var的模块

我的期望是在评论中.

require 'logger'

module Logging
  attr_accessor :logger

  def logger
    return @logger if @logger # allow items to have own loggers
    @@logger ||= Logger.new(STDERR)
    puts "Instance Class REF ID#{@@logger.__id__}"
    puts "Class ID #{self.class.logger.__id__}"
    @@logger
  end

  module ClassMethods
    def logger= logger
      @logger = logger
    end

    def logger
      @logger ||= Logger.new(STDERR)
      puts "Class Instance REF ID #{@logger.__id__}"
      @logger
    end
  end

  def self.included(base)
    base.extend(ClassMethods)
  end
end

class Test

  include Logging

  def wow
    logger.info 'wow'
  end
end

t = Test.new

# should be the same …
Run Code Online (Sandbox Code Playgroud)

ruby include extend

1
推荐指数
1
解决办法
5674
查看次数

嵌套的include语句,便于编程c/c ++

除了好的做法,我试图让编码对我自己来说更容易.

是否可以创建一个头文件来处理无数的包含,以便源可以只包含一个头?

编辑:有些人正在引用Cocoa.我忘了提到C/C++编程.它在标签中,但我忘了把它放在这里.

编辑:没关系.看来我带着这个问题踩到了一个蚁丘.学过的知识.

c c++ header include

1
推荐指数
1
解决办法
903
查看次数

麻烦我的.h文件

这是我的两个类,Node和DobleNode,它们都在不同的.h文件中,并且它们都有自己的.cpp文件.

//"Node.h" 

class Node
{
public:

    Node(string pName, string pID);
    void setReferencia(DobleNode *pReferencia);
    DobleNode* getReferencia(void);

private:

    string Name;
    string ID;
    DobleNode *referencia;
};

//"DobleNode.h"

class DobleNode
{
public:

    DobleNode(string pBank_code, string pCard_type);
    void setReferencia(Node *pReferencia);
    Node* getReferencia(void);

private:

    string bank_code;
    string card_type;
    Node *referencia;
};
Run Code Online (Sandbox Code Playgroud)

问题是我需要一个参考.在类Node中,必须存在DobleNode类型的属性,并且在类DobleNode中必须存在Node类型的属性.它似乎非常简单,我只需要在"Node.h"之前加入"DobleNode.h",一切都会正常工作......

但是,如果我这样做,稍后,当我尝试编译我的小程序时,它表示标识符Node不存在.如果我以另一种方式执行,它会说同样的事情,但这次标识符DobleNode是不存在的标识符.

我怎么能解决这个问题,我认为解决方案可能是将两个类放在同一个文件中,但我认为有更好的解决方法.有没有办法"告诉"编译器同时检查"Node.h"和"DobleNode.h",还是什么?

感谢您的回答.

顺便说一下,我正在研究Visual Studio 2010 Proffesional,C++(很明显).

c++ header include

1
推荐指数
1
解决办法
83
查看次数

为什么更常见的#include指令不包含在默认值中?

我特别想到<iostream>这里.由于它是大多数C++程序使用的常见库,为什么不包含默认值?其他例子是<string>,<fstream><cstdlib>.

c++ include

1
推荐指数
1
解决办法
230
查看次数

使用Ruby进行数组包含检查

我需要检查是否有数组

a1 = [x, y] 
Run Code Online (Sandbox Code Playgroud)

以数组的数组表示

a2 = [ [a, b], [c,d], [e, f] ]
Run Code Online (Sandbox Code Playgroud)

使用Ruby 1.9.例如,if x == cy == dthen函数必须是True.我试过了

a2.includes? a1a1 in a2 但两者doesent工作.

ruby arrays include

1
推荐指数
1
解决办法
1449
查看次数

标签 统计

include ×10

c++ ×4

c ×3

header ×2

javascript ×2

ruby ×2

arrays ×1

extend ×1

gcc ×1

html ×1

jquery ×1

linker ×1

package ×1

performance ×1

perl ×1

perl-module ×1

php ×1

yii ×1