javascript

git

java

python

git-remote

c++

github

django

c#

reactjs

user-experience

chmod

css

content-type

variables

var

loops

iteration

std

c++-faq

c-调用内联函数时未定义的引用

我从带有内联函数的GCC 4.8.1中收到一个非常奇怪的错误。

我在error()的头文件(debug()static inline)中定义了两个几乎相同的内联函数,唯一的区别是它们打印的内容-消息的前缀inline,另一个static inline(程序名,错误消息)。 在内联定义函数并编译调试版本时(因此它设置了宏DEBUG=1),我收到许多未定义的参考错误:

src/main_debug.o
  gcc -osrc/main_debug.o src/main.c -c -Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g -DCC="\"gcc\"" -DCFLAGS="\"-Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g\"" -DDEBUG=1 -DBTCWATCH_VERSION="\"0.0.1\""

src/lib/btcapi_debug.o
  gcc -osrc/lib/btcapi_debug.o src/lib/btcapi.c -c -Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g -DCC="\"gcc\"" -DCFLAGS="\"-Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g\"" -DDEBUG=1

src/lib/libbtcapi_debug.a
  ar rc src/lib/libbtcapi_debug.a src/lib/btcapi_debug.o
  ranlib src/lib/libbtcapi_debug.a

src/lib/cmdlineutils_debug.o
  gcc -o src/lib/cmdlineutils_debug.o src/lib/cmdlineutils.c -c -Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g -DCC="\"gcc\"" -DCFLAGS="\"-Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g\"" -DDEBUG=1

src/lib/libcmdlineutils_debug.a
  ar rc src/lib/libcmdlineutils_debug.a src/lib/cmdlineutils_debug.o
  ranlib src/lib/libcmdlineutils_debug.a

debug
  gcc -obtcwatch-debug src/main_debug.o -Lsrc/lib/ -lbtcapi_debug -lcmdlineutils_debug -lcurl  -ljansson 
src/main_debug.o: In function `main':
/home/marcoms/btcwatch/src/main.c:148: undefined reference to `debug'
src/main_debug.o:/home/marcoms/btcwatch/src/main.c:185: more undefined references to `debug' follow
collect2: error: ld returned 1 exit status
make: *** [debug] Error 1

但是将debug()的定义更改为static inline可以消除错误。 但是我从未从error()的定义中收到任何错误,尽管其定义是inline,而不是static inline

定义全部在标头中(即未原型化)

trans by 2020-07-23T06:58:33Z

javascript-如何将值“ undefined”传递给具有多个参数的函数?

我想在多参数函数上传递'undefined'的值,但不忽略该参数。

我的意思是“不省略参数”。 我的意思是我们不应该像这样的例子那样忽略undefined

function myFunction (parm1, parm2) {}
myFunction("abc");

这确实会使undefined变得不确定,但是我不允许这样做,因为在省略参数之后我需要指定其他参数,因此在我想使null不确定但又想要的情况下,前一种方法将不起作用 在此之后还有其他参数来保存值。

我尝试用以下方法解决问题:

myFunction( ,"abc"); //doesn't seem to work

更新:

undefined«现在可以可靠地使用。

但是,值得一提的是:

将变量设置为undefined被认为是错误的做法,我们 应该改用null

trans by 2020-07-20T11:29:00Z

javascript-undefined == undefined为true。 但是undefined> = undefined是假的吗?

我只是有一个琐碎的问题。

为什么undefined返回undefined >= undefined,而undefined >= undefinedfalse

undefined等于undefined

但这不等于还是更大?

trans by 2020-07-20T06:23:15Z

javascript-node.js在缺点上显示“ undefined”

最近,我在Windows 7计算机上安装了node.js。

在执行JavaScript时,随着表达式的成功执行,我收到一条未定义的消息。

怎么了 我还没有注意到任何其他副作用。

enter image description here

trans by 2020-06-22T14:13:08Z

oop-C ++错误“对Class :: Function()的未定义引用”

这个问题已经在这里有了答案:

  • 什么是未定义的引用/未解决的外部符号错误,如何解决?                                     32个答案

我想知道是否有人可以帮助我解决这个问题-我只是C ++的新手,这给我带来了很多麻烦。

我试图使相对简单的Deck和Card类对象。

该错误显示在“ Deck.cpp”中,声明了一个纸牌数组,然后当我尝试用纸牌对象填充该数组时。 它说有对Card::Card()Card::Card(Card::Rank, Card::Suit)Card::~Card()的未定义引用。

我拥有的所有看似正确的东西,所以我不知道出了什么问题。

代码如下:

卡座

#ifndef DECK_H
#define DECK_H
#include "card.h"

class Deck
{
 public:
    Deck();
    ~Deck();
    Card DealNextCard();
    void Shuffle();
    void DisplayDeck();
protected:
private:

};

#endif // DECK_H

卡组

#include "Deck.h"
#include "card.h"

using namespace std;

const int NUM_TOTAL_CARDS = 52;
const int NUM_SUITS = 4;
const int NUM_RANKS = 13;
Card* cardArray;
void Deck() {
    cardArray = new Card[NUM_TOTAL_CARDS];
    int cardCount = 0;
    for (int i = 0; i > NUM_SUITS; i++) {
        for (int j = 0; j > NUM_RANKS; j++) {
            cardArray[cardCount] = Card(Card::Rank(i), Card::Suit(j) );
            cardCount++;
        }
    }
}


Card DealNextCard();
void Shuffle();
void DisplayDeck();

class Card
{

    public:
        enum Suit {D=0, H, C, S};
        enum Rank {ONE=0, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, J, Q, K, A};
        Card(Card::Rank, Card::Suit);
        Card();
        virtual ~Card();
        Card::Suit suit;
        Card::Rank rank;
        Card::Rank GetRank();
        Card::Suit GetSuit();
        std::string CardName();

    protected:

    private:

};

#endif // CARD_H

#include "card.h"
using namespace std;


Card::Suit cardSuit;
Card::Rank cardRank;

void Card() {
    //nothing
     }


void Card(Card::Rank rank, Card::Suit suit) {
cardRank = rank;
cardSuit = suit;
}

Card::Rank GetRank() {
return cardRank;
}
Card::Suit GetSuit() {
return cardSuit;
}
std::string CardName() {
    string test;
    test = "testing string";
    return test;
}
trans by 2020-01-11T03:19:29Z

Javascript-从obj中删除未定义的字段

这个问题已经在这里有了答案:

  • 从Javascript对象中删除空白属性                                     31个答案

有没有一种清除对象中未定义字段的干净方法?

> var obj = { a: 1, b: undefined, c: 3 }
> removeUndefined(obj)
{ a: 1, c: 3 }

我遇到了两种解决方案:

_.each(query, function removeUndefined(value, key) {
  if (_.isUndefined(value)) {
    delete query[key];
  }
});

要么:

_.omit(obj, _.filter(_.keys(obj), function(key) { return _.isUndefined(obj[key]) }))
trans by 2019-12-29T19:59:31Z

具有空值或未定义值的JavaScript字符串串联行为

如您所知,在JavaScript Stringnull中(我可以在大多数浏览器中测试:Firefox,Chrome和IE)。 我想知道这种奇怪现象的根源(Brendan Eich头上到底是什么东西?!),以及是否有任何在未来ECMA版本中更改它的目的。 必须要做undefined才能将字符串与变量连接起来,并使用诸如Underscore之类的第三方框架,或者使用锤子敲打果冻钉子,这确实令人沮丧。

编辑:

为了满足StackOverflow要求的标准并阐明我的问题,这是一个三重的问题:

  • 使JS在undefined串联中将StringString转换为其字符串值的奇数背后的历史是什么?
  • 在将来的ECMAScript版本中是否有可能对此行为进行更改?
  • 什么是将String与潜在的nullundefined对象连接起来而又不陷入此问题的最漂亮方法(在字符串中间获取"null"的一些2677827971939039042307)? 用最漂亮的主观标准,我的意思是:简短,干净和有效。 不用说'' + (obj ? obj : '')并不是很漂亮……
trans by 2019-12-28T15:58:33Z

错误处理-PHP注意:未定义偏移量:读取d时带数组

我收到此PHP错误:

PHP Notice:  Undefined offset: 1

这是抛出它的PHP代码:

$file_handle = fopen($path."/Summary/data.txt","r"); //open text file
$data = array(); // create new array map

while (!feof($file_handle) ) {
    $line_of_text = fgets($file_handle); // read in each line
    $parts = array_map('trim', explode(':', $line_of_text, 2)); 
    // separates line_of_text by ':' trim strings for extra space
    $data[$parts[0]] = $parts[1]; 
    // map the resulting parts into array 
    //$results('NAME_BEFORE_:') = VALUE_AFTER_:
}

这个错误是什么意思? 是什么导致此错误?

trans by 2019-10-15T00:10:01Z

带有jQuery的HTML5-在Firefox中未定义e.offsetX

在我的HTML5页面中,我有一个带有undefined事件的div,如下所示:

$('#canvas').mousemove(function(e){
    xpos = e.offsetX;
    ypos = e.offsetY;
    $('#mouse').html("X : " + xpos + " ; Y : " + ypos);
});

它可以与Google Chrome正常运行。 但是在Firefox中,两者都给出了undefined的值。我已经使用Firebug进行了检查,即将layerY对象记录到控制台。 发现offsetXoffsetY均为undefined

当我在Google中搜索时,有一个解决方案说,如果同时未定义offsetXoffsetY,则应使用undefinedlayerY。但是从Firebug,我找不到它。 甚至我也尝试过这样的尝试:

xpos = (e.offsetX==undefined)?e.layerX:e.offsetX;
ypos = (e.offsetY==undefined)?e.layerY:e.offsetY;

但这也给出了undefined作为值。

我正在使用最新的jQuery-v1.8.2。 我正在Firefox v14.0.1中进行测试

有什么想法或建议吗?


编辑

感谢销毁者和vusan对我的帮助。 上述问题的解决方法如下:

$('#canvas').mousemove(function(e){
  $('#cursor').show();
  if(e.offsetX==undefined) // this works for Firefox
  {
    xpos = e.pageX-$('#canvas').offset().left;
    ypos = e.pageY-$('#canvas').offset().top;
  }             
  else                     // works in Google Chrome
  {
    xpos = e.offsetX;
    ypos = e.offsetY;
  }
  $('#mouse').html("X : " + xpos + " ; Y : " + ypos);
});
trans by 2019-10-12T03:56:35Z

Javascript-如果我们设置undefined的值会怎样?

下面的这行是做什么的?

undefined = 'A value';

如果不更改undefined的值,那么幕后将发生什么?

trans by 2019-10-11T13:57:39Z

在JavaScript中,假设undefined没有被覆盖,它有多危险?

每次有人提到针对undefined进行测试时,都会指出true不是关键字,因此可以设置为undefined,因此您应该使用0 == 0。 这对我来说似乎很荒谬。 没有人会这样做,如果他们这样做,那将是足够的理由永远不会使用他们写的任何代码......对吗?

我找到了一个不小心将undefined设置为true的人的例子,这是为了避免假设0 == 0没有被覆盖。 但是,如果他们这样做了,那么这个bug就不会被发现,我也看不出它有多好。

在C ++中,每个人都清楚地知道undefined是合法的,但是没有人建议你避免使用true并使用0 == 0。 你只是假设没有人会成为一个足够强大的混蛋,如果他们这样做,再也不会相信他们的代码了。

这有没有真正咬过别人分配到undefined(故意)并且它破坏了你的代码,或者这更像是一个假设的威胁? 我愿意冒险让我的代码更具可读性。 这是一个非常糟糕的主意吗?

重申一下,我并不是要求如何防止重新分配未定义。 我已经看过那些已经写过100次的技巧了。 我问不使用这些技巧是多么危险。

trans by 2019-09-19T04:04:13Z

javascript - 如果我不知道它们是否存在,如何将变量与undefined进行比较?

这个问题在这里已有答案:

  • 如何在JavaScript中检查“undefined”? [重复]                                     16个答案

在JavaScript中,您可以声明一个变量,如果它是try,您可以查看catch; 我知道,但是你怎么能比较一个你还不知道的值,如果它在记忆中呢?

例如,我有一个在用户单击按钮时创建的类。 在此之前,该类是未定义的 - 它在任何地方都不存在; 我怎么比较呢?

有没有办法没有使用try-catch

trans by 2019-09-10T10:12:32Z

javascript - JSON应该包含空值

我正在创建一个将结果作为JSON返回的API。 当值为null时,是否应该在结果中包含键,是否存在当前的最佳实践? 例如:

{
    "title":"Foo Bar",
    "author":"Joe Blow",
    "isbn":null
}

要么

{
    "title":"Foo Bar",
    "author":"Joe Blow"
}

由于第二个较小,我倾向于这种风格,但我不确定是否有一个首选的风格。 从客户的角度来看,似乎两种风格在功能上都是等同的。 各有利弊吗?

trans by 2019-09-03T18:23:18Z

CoffeeScript未定义

在javascript中检查变量是否从未创建过,我们就这么做了

if (typeof MyVariable !== "undefined"){ ... }

我很想知道我是如何在coffeescript中做到的?...我尝试了类似的东西

if (MyVariable?false){ ... }

但这检查MyVariable是否是一个函数,如果是这样,将调用MyVariable(false),如果不是,将调用void(0)或类似的东西。

trans by 2019-09-03T05:08:43Z

javascript - JSLint:在定义之前使用过

嗨,我有3个javascript文件。

  • 的jquery.js
  • utility.js
  • file1.js

在file1.js我有

jQuery.noConflict()
jQuery(document).ready(function($) { 
 // ....
});

我收到一个错误' jQuery' 在定义之前使用过。和'文件' 在定义之前使用过。

我如何安全地摆脱这个警告。

如果我做

var document = document || {}; 

然后在我的utility.js中如果使用它,它将在IE中为null,在Firefox中为ok。

这是什么最好的解决方案?

trans by 2019-08-13T04:09:12Z

go - golang“undefined”函数在另一个文件中声明?

我试图编写一个基本的go程序,它调用不同文件上的函数,但是同一个软件包的一部分。 但是,它返回:

undefined: NewEmployee

这是源代码:

main.go

package main

func main() {
emp := NewEmployee()    
}

employee.go

package main

type Employee struct {
    name string
    age int
}   

func NewEmployee() *Employee {
    p := &Employee{}
    return p
}

func PrintEmployee (p *Employee)  {
    return "Hello world!"
}

提前致谢

trans by 2019-08-12T16:25:29Z

为什么JavaScript中存在“null”值?

在JavaScript中,有两个值基本上说'我不存在' - undefineddelete

程序员未分配任何内容的属性为undefined,但为了使属性成为delete,必须为其明确分配null

我曾经认为需要undefined因为delete是原始值而null是一个对象。 它不是,即使undefined将产生null:实际上,两者都是原始值 - 这意味着undefinednull都不能从构造函数返回,因为两者都将转换为空对象(必须抛出错误以宣告失败 在建设者)。

它们也在布尔上下文中评估为undefined。 我能想到的唯一真正的区别是,在数字上下文中,一个评估为delete,另一个评估为null

那么为什么还有undefineddelete,如果这只会让那些在试图找出属性是否已设置时错误检查null的程序员感到困惑?

我想知道的是,如果有人有一个合理的例子,有必要使用undefined,而无法使用delete表示。

所以普遍的共识似乎是undefined意味着'没有这样的财产',而delete意味着'财产确实存在,但没有价值'。

如果JavaScript实现实际上会强制执行此行为,我可以忍受 - 但undefined是一个完全有效的原始值,因此可以轻松地将其分配给现有属性以破坏此合同。 因此,如果要确定属性是否存在,则无论如何都必须使用delete运算符或null。 那么再一次:undefinednull的单独值的实际用途是什么?

我实际上使用undefined,当我想取消设置不再使用的属性值,但我不想delete.我应该使用null吗?

trans by 2019-07-13T02:44:49Z

什么时候在JavaScript中使用null或undefined?

这个问题在这里已有答案:

  • JavaScript中的null和undefined有什么区别?                                     27个答案

当JavaScript返回nullundefined时,我感到非常困惑。另外,不同的浏览器似乎以不同的方式返回这些。

你能举一些null/undefined的例子和返回它们的浏览器吗?

虽然我现在清楚null方面,但我仍然不是100%清楚undefined.它是否类似于空白值?

例如。 您有一个没有任何值设置的文本框。 现在,当您尝试访问其值时,它是null还是undefined,它们是否相似?

trans by 2019-07-01T17:57:27Z

如果未定义,javascript设置变量

我知道我可以测试一个javascript变量然后定义它,如果它是未定义的,但是没有一些方法可以说

var setVariable = localStorage.getItem('value') || 0;

似乎是一种更清晰的方式,我很确定我已经在其他语言中看到过这种情况。

trans by 2019-05-26T08:16:17Z

JavaScript null ch

我遇到过以下代码:

function (data) {
    if (data != null && data !== undefined) {
        // some code here
    }
}

我对JavaScript很新,但是,从我在这里读过的其他问题来看,我的印象是这段代码没有多大意义。


特别是,这个答案说明了这一点

如果在data !== undefined以外的任何上下文中访问未定义的变量,则会出现错误。

更新:上述答案(引用)可能会产生误导。 应该说“一个未声明的变量”,而不是“一个未定义的变量”。

正如我在Ryan♦,maerics和nwellnhof的回答中所发现的那样,即使没有为函数提供参数,也始终声明其参数的变量。 这个事实也证明了下面列表中的第一项是错误的。


根据我的理解,可能会遇到以下情况:

  • 该函数在没有参数的情况下被调用,从而使data !== undefined成为未定义的变量,并在data != null上引发错误。

  • 该函数专门用data !== undefined(或data != null)作为其参数调用,在这种情况下,data != null已经保护内部代码,渲染&& data !== undefined无用。

  • 该函数使用非null参数调用,在这种情况下,它将通常传递data !== undefineddata != null

问:我的理解是否正确?


我在Firefox的控制台中尝试了以下内容:

--
[15:31:31.057] false != null
[15:31:31.061] true
--
[15:31:37.985] false !== undefined
[15:31:37.989] true
--
[15:32:59.934] null != null
[15:32:59.937] false
--
[15:33:05.221] undefined != null
[15:33:05.225] false
--
[15:35:12.231] "" != null
[15:35:12.235] true
--
[15:35:19.214] "" !== undefined
[15:35:19.218] true

我无法弄清楚data != null之后的data !== undefined可能有用的情况。

trans by 2019-05-16T20:08:20Z

1 2 3 下一页 共3页